// @generated by protoc-gen-es v2.6.0 with parameter "target=js+dts,import_extension=none,json_types=true"
// @generated from file runme/project/v1/project.proto (package runme.project.v1, syntax proto3)
/* eslint-disable */

import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import type { Message } from "@bufbuild/protobuf";
import type { RunmeIdentity, RunmeIdentityJson } from "../../parser/v1/parser_pb";

/**
 * Describes the file runme/project/v1/project.proto.
 */
export declare const file_runme_project_v1_project: GenFile;

/**
 * @generated from message runme.project.v1.DirectoryProjectOptions
 */
export declare type DirectoryProjectOptions = Message<"runme.project.v1.DirectoryProjectOptions"> & {
  /**
   * Path to a directory containing the project.
   *
   * @generated from field: string path = 1;
   */
  path: string;

  /**
   * If true, .gitignore file is ignored, as well as .git/info/exclude.
   *
   * @generated from field: bool skip_gitignore = 2;
   */
  skipGitignore: boolean;

  /**
   * A list of file patterns, compatible with .gitignore syntax,
   * to ignore.
   *
   * @generated from field: repeated string ignore_file_patterns = 3;
   */
  ignoreFilePatterns: string[];

  /**
   * If true, it disables lookuping up for .git folder
   * in the parent directories.
   *
   * @generated from field: bool skip_repo_lookup_upward = 4;
   */
  skipRepoLookupUpward: boolean;
};

/**
 * @generated from message runme.project.v1.DirectoryProjectOptions
 */
export declare type DirectoryProjectOptionsJson = {
  /**
   * Path to a directory containing the project.
   *
   * @generated from field: string path = 1;
   */
  path?: string;

  /**
   * If true, .gitignore file is ignored, as well as .git/info/exclude.
   *
   * @generated from field: bool skip_gitignore = 2;
   */
  skipGitignore?: boolean;

  /**
   * A list of file patterns, compatible with .gitignore syntax,
   * to ignore.
   *
   * @generated from field: repeated string ignore_file_patterns = 3;
   */
  ignoreFilePatterns?: string[];

  /**
   * If true, it disables lookuping up for .git folder
   * in the parent directories.
   *
   * @generated from field: bool skip_repo_lookup_upward = 4;
   */
  skipRepoLookupUpward?: boolean;
};

/**
 * Describes the message runme.project.v1.DirectoryProjectOptions.
 * Use `create(DirectoryProjectOptionsSchema)` to create a new message.
 */
export declare const DirectoryProjectOptionsSchema: GenMessage<DirectoryProjectOptions, {jsonType: DirectoryProjectOptionsJson}>;

/**
 * @generated from message runme.project.v1.FileProjectOptions
 */
export declare type FileProjectOptions = Message<"runme.project.v1.FileProjectOptions"> & {
  /**
   * @generated from field: string path = 1;
   */
  path: string;
};

/**
 * @generated from message runme.project.v1.FileProjectOptions
 */
export declare type FileProjectOptionsJson = {
  /**
   * @generated from field: string path = 1;
   */
  path?: string;
};

/**
 * Describes the message runme.project.v1.FileProjectOptions.
 * Use `create(FileProjectOptionsSchema)` to create a new message.
 */
export declare const FileProjectOptionsSchema: GenMessage<FileProjectOptions, {jsonType: FileProjectOptionsJson}>;

/**
 * @generated from message runme.project.v1.LoadRequest
 */
export declare type LoadRequest = Message<"runme.project.v1.LoadRequest"> & {
  /**
   * @generated from oneof runme.project.v1.LoadRequest.kind
   */
  kind: {
    /**
     * @generated from field: runme.project.v1.DirectoryProjectOptions directory = 1;
     */
    value: DirectoryProjectOptions;
    case: "directory";
  } | {
    /**
     * @generated from field: runme.project.v1.FileProjectOptions file = 2;
     */
    value: FileProjectOptions;
    case: "file";
  } | { case: undefined; value?: undefined };

  /**
   * @generated from field: runme.parser.v1.RunmeIdentity identity = 3;
   */
  identity: RunmeIdentity;
};

/**
 * @generated from message runme.project.v1.LoadRequest
 */
export declare type LoadRequestJson = {
  /**
   * @generated from field: runme.project.v1.DirectoryProjectOptions directory = 1;
   */
  directory?: DirectoryProjectOptionsJson;

  /**
   * @generated from field: runme.project.v1.FileProjectOptions file = 2;
   */
  file?: FileProjectOptionsJson;

  /**
   * @generated from field: runme.parser.v1.RunmeIdentity identity = 3;
   */
  identity?: RunmeIdentityJson;
};

/**
 * Describes the message runme.project.v1.LoadRequest.
 * Use `create(LoadRequestSchema)` to create a new message.
 */
export declare const LoadRequestSchema: GenMessage<LoadRequest, {jsonType: LoadRequestJson}>;

/**
 * @generated from message runme.project.v1.LoadEventStartedWalk
 */
export declare type LoadEventStartedWalk = Message<"runme.project.v1.LoadEventStartedWalk"> & {
};

/**
 * @generated from message runme.project.v1.LoadEventStartedWalk
 */
export declare type LoadEventStartedWalkJson = {
};

/**
 * Describes the message runme.project.v1.LoadEventStartedWalk.
 * Use `create(LoadEventStartedWalkSchema)` to create a new message.
 */
export declare const LoadEventStartedWalkSchema: GenMessage<LoadEventStartedWalk, {jsonType: LoadEventStartedWalkJson}>;

/**
 * @generated from message runme.project.v1.LoadEventFoundDir
 */
export declare type LoadEventFoundDir = Message<"runme.project.v1.LoadEventFoundDir"> & {
  /**
   * @generated from field: string path = 1;
   */
  path: string;
};

/**
 * @generated from message runme.project.v1.LoadEventFoundDir
 */
export declare type LoadEventFoundDirJson = {
  /**
   * @generated from field: string path = 1;
   */
  path?: string;
};

/**
 * Describes the message runme.project.v1.LoadEventFoundDir.
 * Use `create(LoadEventFoundDirSchema)` to create a new message.
 */
export declare const LoadEventFoundDirSchema: GenMessage<LoadEventFoundDir, {jsonType: LoadEventFoundDirJson}>;

/**
 * @generated from message runme.project.v1.LoadEventFoundFile
 */
export declare type LoadEventFoundFile = Message<"runme.project.v1.LoadEventFoundFile"> & {
  /**
   * @generated from field: string path = 1;
   */
  path: string;
};

/**
 * @generated from message runme.project.v1.LoadEventFoundFile
 */
export declare type LoadEventFoundFileJson = {
  /**
   * @generated from field: string path = 1;
   */
  path?: string;
};

/**
 * Describes the message runme.project.v1.LoadEventFoundFile.
 * Use `create(LoadEventFoundFileSchema)` to create a new message.
 */
export declare const LoadEventFoundFileSchema: GenMessage<LoadEventFoundFile, {jsonType: LoadEventFoundFileJson}>;

/**
 * @generated from message runme.project.v1.LoadEventFinishedWalk
 */
export declare type LoadEventFinishedWalk = Message<"runme.project.v1.LoadEventFinishedWalk"> & {
};

/**
 * @generated from message runme.project.v1.LoadEventFinishedWalk
 */
export declare type LoadEventFinishedWalkJson = {
};

/**
 * Describes the message runme.project.v1.LoadEventFinishedWalk.
 * Use `create(LoadEventFinishedWalkSchema)` to create a new message.
 */
export declare const LoadEventFinishedWalkSchema: GenMessage<LoadEventFinishedWalk, {jsonType: LoadEventFinishedWalkJson}>;

/**
 * @generated from message runme.project.v1.LoadEventStartedParsingDoc
 */
export declare type LoadEventStartedParsingDoc = Message<"runme.project.v1.LoadEventStartedParsingDoc"> & {
  /**
   * @generated from field: string path = 1;
   */
  path: string;
};

/**
 * @generated from message runme.project.v1.LoadEventStartedParsingDoc
 */
export declare type LoadEventStartedParsingDocJson = {
  /**
   * @generated from field: string path = 1;
   */
  path?: string;
};

/**
 * Describes the message runme.project.v1.LoadEventStartedParsingDoc.
 * Use `create(LoadEventStartedParsingDocSchema)` to create a new message.
 */
export declare const LoadEventStartedParsingDocSchema: GenMessage<LoadEventStartedParsingDoc, {jsonType: LoadEventStartedParsingDocJson}>;

/**
 * @generated from message runme.project.v1.LoadEventFinishedParsingDoc
 */
export declare type LoadEventFinishedParsingDoc = Message<"runme.project.v1.LoadEventFinishedParsingDoc"> & {
  /**
   * @generated from field: string path = 1;
   */
  path: string;
};

/**
 * @generated from message runme.project.v1.LoadEventFinishedParsingDoc
 */
export declare type LoadEventFinishedParsingDocJson = {
  /**
   * @generated from field: string path = 1;
   */
  path?: string;
};

/**
 * Describes the message runme.project.v1.LoadEventFinishedParsingDoc.
 * Use `create(LoadEventFinishedParsingDocSchema)` to create a new message.
 */
export declare const LoadEventFinishedParsingDocSchema: GenMessage<LoadEventFinishedParsingDoc, {jsonType: LoadEventFinishedParsingDocJson}>;

/**
 * @generated from message runme.project.v1.LoadEventFoundTask
 */
export declare type LoadEventFoundTask = Message<"runme.project.v1.LoadEventFoundTask"> & {
  /**
   * @generated from field: string document_path = 1;
   */
  documentPath: string;

  /**
   * @generated from field: string id = 2;
   */
  id: string;

  /**
   * @generated from field: string name = 3;
   */
  name: string;

  /**
   * @generated from field: bool is_name_generated = 4;
   */
  isNameGenerated: boolean;
};

/**
 * @generated from message runme.project.v1.LoadEventFoundTask
 */
export declare type LoadEventFoundTaskJson = {
  /**
   * @generated from field: string document_path = 1;
   */
  documentPath?: string;

  /**
   * @generated from field: string id = 2;
   */
  id?: string;

  /**
   * @generated from field: string name = 3;
   */
  name?: string;

  /**
   * @generated from field: bool is_name_generated = 4;
   */
  isNameGenerated?: boolean;
};

/**
 * Describes the message runme.project.v1.LoadEventFoundTask.
 * Use `create(LoadEventFoundTaskSchema)` to create a new message.
 */
export declare const LoadEventFoundTaskSchema: GenMessage<LoadEventFoundTask, {jsonType: LoadEventFoundTaskJson}>;

/**
 * @generated from message runme.project.v1.LoadEventError
 */
export declare type LoadEventError = Message<"runme.project.v1.LoadEventError"> & {
  /**
   * @generated from field: string error_message = 1;
   */
  errorMessage: string;
};

/**
 * @generated from message runme.project.v1.LoadEventError
 */
export declare type LoadEventErrorJson = {
  /**
   * @generated from field: string error_message = 1;
   */
  errorMessage?: string;
};

/**
 * Describes the message runme.project.v1.LoadEventError.
 * Use `create(LoadEventErrorSchema)` to create a new message.
 */
export declare const LoadEventErrorSchema: GenMessage<LoadEventError, {jsonType: LoadEventErrorJson}>;

/**
 * @generated from message runme.project.v1.LoadResponse
 */
export declare type LoadResponse = Message<"runme.project.v1.LoadResponse"> & {
  /**
   * @generated from field: runme.project.v1.LoadEventType type = 1;
   */
  type: LoadEventType;

  /**
   * @generated from oneof runme.project.v1.LoadResponse.data
   */
  data: {
    /**
     * @generated from field: runme.project.v1.LoadEventStartedWalk started_walk = 2;
     */
    value: LoadEventStartedWalk;
    case: "startedWalk";
  } | {
    /**
     * @generated from field: runme.project.v1.LoadEventFoundDir found_dir = 3;
     */
    value: LoadEventFoundDir;
    case: "foundDir";
  } | {
    /**
     * @generated from field: runme.project.v1.LoadEventFoundFile found_file = 4;
     */
    value: LoadEventFoundFile;
    case: "foundFile";
  } | {
    /**
     * @generated from field: runme.project.v1.LoadEventFinishedWalk finished_walk = 5;
     */
    value: LoadEventFinishedWalk;
    case: "finishedWalk";
  } | {
    /**
     * @generated from field: runme.project.v1.LoadEventStartedParsingDoc started_parsing_doc = 6;
     */
    value: LoadEventStartedParsingDoc;
    case: "startedParsingDoc";
  } | {
    /**
     * @generated from field: runme.project.v1.LoadEventFinishedParsingDoc finished_parsing_doc = 7;
     */
    value: LoadEventFinishedParsingDoc;
    case: "finishedParsingDoc";
  } | {
    /**
     * @generated from field: runme.project.v1.LoadEventFoundTask found_task = 8;
     */
    value: LoadEventFoundTask;
    case: "foundTask";
  } | {
    /**
     * @generated from field: runme.project.v1.LoadEventError error = 9;
     */
    value: LoadEventError;
    case: "error";
  } | { case: undefined; value?: undefined };
};

/**
 * @generated from message runme.project.v1.LoadResponse
 */
export declare type LoadResponseJson = {
  /**
   * @generated from field: runme.project.v1.LoadEventType type = 1;
   */
  type?: LoadEventTypeJson;

  /**
   * @generated from field: runme.project.v1.LoadEventStartedWalk started_walk = 2;
   */
  startedWalk?: LoadEventStartedWalkJson;

  /**
   * @generated from field: runme.project.v1.LoadEventFoundDir found_dir = 3;
   */
  foundDir?: LoadEventFoundDirJson;

  /**
   * @generated from field: runme.project.v1.LoadEventFoundFile found_file = 4;
   */
  foundFile?: LoadEventFoundFileJson;

  /**
   * @generated from field: runme.project.v1.LoadEventFinishedWalk finished_walk = 5;
   */
  finishedWalk?: LoadEventFinishedWalkJson;

  /**
   * @generated from field: runme.project.v1.LoadEventStartedParsingDoc started_parsing_doc = 6;
   */
  startedParsingDoc?: LoadEventStartedParsingDocJson;

  /**
   * @generated from field: runme.project.v1.LoadEventFinishedParsingDoc finished_parsing_doc = 7;
   */
  finishedParsingDoc?: LoadEventFinishedParsingDocJson;

  /**
   * @generated from field: runme.project.v1.LoadEventFoundTask found_task = 8;
   */
  foundTask?: LoadEventFoundTaskJson;

  /**
   * @generated from field: runme.project.v1.LoadEventError error = 9;
   */
  error?: LoadEventErrorJson;
};

/**
 * Describes the message runme.project.v1.LoadResponse.
 * Use `create(LoadResponseSchema)` to create a new message.
 */
export declare const LoadResponseSchema: GenMessage<LoadResponse, {jsonType: LoadResponseJson}>;

/**
 * @generated from enum runme.project.v1.LoadEventType
 */
export enum LoadEventType {
  /**
   * @generated from enum value: LOAD_EVENT_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: LOAD_EVENT_TYPE_STARTED_WALK = 1;
   */
  STARTED_WALK = 1,

  /**
   * @generated from enum value: LOAD_EVENT_TYPE_FOUND_DIR = 2;
   */
  FOUND_DIR = 2,

  /**
   * @generated from enum value: LOAD_EVENT_TYPE_FOUND_FILE = 3;
   */
  FOUND_FILE = 3,

  /**
   * @generated from enum value: LOAD_EVENT_TYPE_FINISHED_WALK = 4;
   */
  FINISHED_WALK = 4,

  /**
   * @generated from enum value: LOAD_EVENT_TYPE_STARTED_PARSING_DOC = 5;
   */
  STARTED_PARSING_DOC = 5,

  /**
   * @generated from enum value: LOAD_EVENT_TYPE_FINISHED_PARSING_DOC = 6;
   */
  FINISHED_PARSING_DOC = 6,

  /**
   * @generated from enum value: LOAD_EVENT_TYPE_FOUND_TASK = 7;
   */
  FOUND_TASK = 7,

  /**
   * @generated from enum value: LOAD_EVENT_TYPE_ERROR = 8;
   */
  ERROR = 8,
}

/**
 * @generated from enum runme.project.v1.LoadEventType
 */
export declare type LoadEventTypeJson = "LOAD_EVENT_TYPE_UNSPECIFIED" | "LOAD_EVENT_TYPE_STARTED_WALK" | "LOAD_EVENT_TYPE_FOUND_DIR" | "LOAD_EVENT_TYPE_FOUND_FILE" | "LOAD_EVENT_TYPE_FINISHED_WALK" | "LOAD_EVENT_TYPE_STARTED_PARSING_DOC" | "LOAD_EVENT_TYPE_FINISHED_PARSING_DOC" | "LOAD_EVENT_TYPE_FOUND_TASK" | "LOAD_EVENT_TYPE_ERROR";

/**
 * Describes the enum runme.project.v1.LoadEventType.
 */
export declare const LoadEventTypeSchema: GenEnum<LoadEventType, LoadEventTypeJson>;

/**
 * @generated from service runme.project.v1.ProjectService
 */
export declare const ProjectService: GenService<{
  /**
   * Load creates a new project, walks it, and streams events
   * about found directories, files, and code blocks.
   *
   * @generated from rpc runme.project.v1.ProjectService.Load
   */
  load: {
    methodKind: "server_streaming";
    input: typeof LoadRequestSchema;
    output: typeof LoadResponseSchema;
  },
}>;
