// @generated by protoc-gen-es v2.6.2 with parameter "target=ts"
// @generated from file filesystem/filesystem.proto (package filesystem, syntax proto3)
/* eslint-disable */

import type {
  GenEnum,
  GenFile,
  GenMessage,
  GenService,
} from '@bufbuild/protobuf/codegenv2'
import {
  enumDesc,
  fileDesc,
  messageDesc,
  serviceDesc,
} from '@bufbuild/protobuf/codegenv2'
import type { Timestamp } from '@bufbuild/protobuf/wkt'
import { file_google_protobuf_timestamp } from '@bufbuild/protobuf/wkt'
import type { Message } from '@bufbuild/protobuf'

/**
 * Describes the file filesystem/filesystem.proto.
 */
export const file_filesystem_filesystem: GenFile =
  /*@__PURE__*/
  fileDesc(
    'ChtmaWxlc3lzdGVtL2ZpbGVzeXN0ZW0ucHJvdG8SCmZpbGVzeXN0ZW0iMgoLTW92ZVJlcXVlc3QSDgoGc291cmNlGAEgASgJEhMKC2Rlc3RpbmF0aW9uGAIgASgJIjQKDE1vdmVSZXNwb25zZRIkCgVlbnRyeRgBIAEoCzIVLmZpbGVzeXN0ZW0uRW50cnlJbmZvIh4KDk1ha2VEaXJSZXF1ZXN0EgwKBHBhdGgYASABKAkiNwoPTWFrZURpclJlc3BvbnNlEiQKBWVudHJ5GAEgASgLMhUuZmlsZXN5c3RlbS5FbnRyeUluZm8iHQoNUmVtb3ZlUmVxdWVzdBIMCgRwYXRoGAEgASgJIhAKDlJlbW92ZVJlc3BvbnNlIhsKC1N0YXRSZXF1ZXN0EgwKBHBhdGgYASABKAkiNAoMU3RhdFJlc3BvbnNlEiQKBWVudHJ5GAEgASgLMhUuZmlsZXN5c3RlbS5FbnRyeUluZm8i5QIKCUVudHJ5SW5mbxIMCgRuYW1lGAEgASgJEiIKBHR5cGUYAiABKA4yFC5maWxlc3lzdGVtLkZpbGVUeXBlEgwKBHBhdGgYAyABKAkSDAoEc2l6ZRgEIAEoAxIMCgRtb2RlGAUgASgNEhMKC3Blcm1pc3Npb25zGAYgASgJEg0KBW93bmVyGAcgASgJEg0KBWdyb3VwGAggASgJEjEKDW1vZGlmaWVkX3RpbWUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKDnN5bWxpbmtfdGFyZ2V0GAogASgJSACIAQESNQoIbWV0YWRhdGEYCyADKAsyIy5maWxlc3lzdGVtLkVudHJ5SW5mby5NZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIRCg9fc3ltbGlua190YXJnZXQiLQoOTGlzdERpclJlcXVlc3QSDAoEcGF0aBgBIAEoCRINCgVkZXB0aBgCIAEoDSI5Cg9MaXN0RGlyUmVzcG9uc2USJgoHZW50cmllcxgBIAMoCzIVLmZpbGVzeXN0ZW0uRW50cnlJbmZvImcKD1dhdGNoRGlyUmVxdWVzdBIMCgRwYXRoGAEgASgJEhEKCXJlY3Vyc2l2ZRgCIAEoCBIVCg1pbmNsdWRlX2VudHJ5GAMgASgIEhwKFGFsbG93X25ldHdvcmtfbW91bnRzGAQgASgIInkKD0ZpbGVzeXN0ZW1FdmVudBIMCgRuYW1lGAEgASgJEiMKBHR5cGUYAiABKA4yFS5maWxlc3lzdGVtLkV2ZW50VHlwZRIpCgVlbnRyeRgDIAEoCzIVLmZpbGVzeXN0ZW0uRW50cnlJbmZvSACIAQFCCAoGX2VudHJ5IuABChBXYXRjaERpclJlc3BvbnNlEjgKBXN0YXJ0GAEgASgLMicuZmlsZXN5c3RlbS5XYXRjaERpclJlc3BvbnNlLlN0YXJ0RXZlbnRIABIxCgpmaWxlc3lzdGVtGAIgASgLMhsuZmlsZXN5c3RlbS5GaWxlc3lzdGVtRXZlbnRIABI7CglrZWVwYWxpdmUYAyABKAsyJi5maWxlc3lzdGVtLldhdGNoRGlyUmVzcG9uc2UuS2VlcEFsaXZlSAAaDAoKU3RhcnRFdmVudBoLCglLZWVwQWxpdmVCBwoFZXZlbnQibAoUQ3JlYXRlV2F0Y2hlclJlcXVlc3QSDAoEcGF0aBgBIAEoCRIRCglyZWN1cnNpdmUYAiABKAgSFQoNaW5jbHVkZV9lbnRyeRgDIAEoCBIcChRhbGxvd19uZXR3b3JrX21vdW50cxgEIAEoCCIrChVDcmVhdGVXYXRjaGVyUmVzcG9uc2USEgoKd2F0Y2hlcl9pZBgBIAEoCSItChdHZXRXYXRjaGVyRXZlbnRzUmVxdWVzdBISCgp3YXRjaGVyX2lkGAEgASgJIkcKGEdldFdhdGNoZXJFdmVudHNSZXNwb25zZRIrCgZldmVudHMYASADKAsyGy5maWxlc3lzdGVtLkZpbGVzeXN0ZW1FdmVudCIqChRSZW1vdmVXYXRjaGVyUmVxdWVzdBISCgp3YXRjaGVyX2lkGAEgASgJIhcKFVJlbW92ZVdhdGNoZXJSZXNwb25zZSpSCghGaWxlVHlwZRIZChVGSUxFX1RZUEVfVU5TUEVDSUZJRUQQABISCg5GSUxFX1RZUEVfRklMRRABEhcKE0ZJTEVfVFlQRV9ESVJFQ1RPUlkQAiqYAQoJRXZlbnRUeXBlEhoKFkVWRU5UX1RZUEVfVU5TUEVDSUZJRUQQABIVChFFVkVOVF9UWVBFX0NSRUFURRABEhQKEEVWRU5UX1RZUEVfV1JJVEUQAhIVChFFVkVOVF9UWVBFX1JFTU9WRRADEhUKEUVWRU5UX1RZUEVfUkVOQU1FEAQSFAoQRVZFTlRfVFlQRV9DSE1PRBAFMp8FCgpGaWxlc3lzdGVtEjkKBFN0YXQSFy5maWxlc3lzdGVtLlN0YXRSZXF1ZXN0GhguZmlsZXN5c3RlbS5TdGF0UmVzcG9uc2USQgoHTWFrZURpchIaLmZpbGVzeXN0ZW0uTWFrZURpclJlcXVlc3QaGy5maWxlc3lzdGVtLk1ha2VEaXJSZXNwb25zZRI5CgRNb3ZlEhcuZmlsZXN5c3RlbS5Nb3ZlUmVxdWVzdBoYLmZpbGVzeXN0ZW0uTW92ZVJlc3BvbnNlEkIKB0xpc3REaXISGi5maWxlc3lzdGVtLkxpc3REaXJSZXF1ZXN0GhsuZmlsZXN5c3RlbS5MaXN0RGlyUmVzcG9uc2USPwoGUmVtb3ZlEhkuZmlsZXN5c3RlbS5SZW1vdmVSZXF1ZXN0GhouZmlsZXN5c3RlbS5SZW1vdmVSZXNwb25zZRJHCghXYXRjaERpchIbLmZpbGVzeXN0ZW0uV2F0Y2hEaXJSZXF1ZXN0GhwuZmlsZXN5c3RlbS5XYXRjaERpclJlc3BvbnNlMAESVAoNQ3JlYXRlV2F0Y2hlchIgLmZpbGVzeXN0ZW0uQ3JlYXRlV2F0Y2hlclJlcXVlc3QaIS5maWxlc3lzdGVtLkNyZWF0ZVdhdGNoZXJSZXNwb25zZRJdChBHZXRXYXRjaGVyRXZlbnRzEiMuZmlsZXN5c3RlbS5HZXRXYXRjaGVyRXZlbnRzUmVxdWVzdBokLmZpbGVzeXN0ZW0uR2V0V2F0Y2hlckV2ZW50c1Jlc3BvbnNlElQKDVJlbW92ZVdhdGNoZXISIC5maWxlc3lzdGVtLlJlbW92ZVdhdGNoZXJSZXF1ZXN0GiEuZmlsZXN5c3RlbS5SZW1vdmVXYXRjaGVyUmVzcG9uc2VCaQoOY29tLmZpbGVzeXN0ZW1CD0ZpbGVzeXN0ZW1Qcm90b1ABogIDRlhYqgIKRmlsZXN5c3RlbcoCCkZpbGVzeXN0ZW3iAhZGaWxlc3lzdGVtXEdQQk1ldGFkYXRh6gIKRmlsZXN5c3RlbWIGcHJvdG8z',
    [file_google_protobuf_timestamp]
  )

/**
 * @generated from message filesystem.MoveRequest
 */
export type MoveRequest = Message<'filesystem.MoveRequest'> & {
  /**
   * @generated from field: string source = 1;
   */
  source: string

  /**
   * @generated from field: string destination = 2;
   */
  destination: string
}

/**
 * Describes the message filesystem.MoveRequest.
 * Use `create(MoveRequestSchema)` to create a new message.
 */
export const MoveRequestSchema: GenMessage<MoveRequest> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 0)

/**
 * @generated from message filesystem.MoveResponse
 */
export type MoveResponse = Message<'filesystem.MoveResponse'> & {
  /**
   * @generated from field: filesystem.EntryInfo entry = 1;
   */
  entry?: EntryInfo
}

/**
 * Describes the message filesystem.MoveResponse.
 * Use `create(MoveResponseSchema)` to create a new message.
 */
export const MoveResponseSchema: GenMessage<MoveResponse> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 1)

/**
 * @generated from message filesystem.MakeDirRequest
 */
export type MakeDirRequest = Message<'filesystem.MakeDirRequest'> & {
  /**
   * @generated from field: string path = 1;
   */
  path: string
}

/**
 * Describes the message filesystem.MakeDirRequest.
 * Use `create(MakeDirRequestSchema)` to create a new message.
 */
export const MakeDirRequestSchema: GenMessage<MakeDirRequest> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 2)

/**
 * @generated from message filesystem.MakeDirResponse
 */
export type MakeDirResponse = Message<'filesystem.MakeDirResponse'> & {
  /**
   * @generated from field: filesystem.EntryInfo entry = 1;
   */
  entry?: EntryInfo
}

/**
 * Describes the message filesystem.MakeDirResponse.
 * Use `create(MakeDirResponseSchema)` to create a new message.
 */
export const MakeDirResponseSchema: GenMessage<MakeDirResponse> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 3)

/**
 * @generated from message filesystem.RemoveRequest
 */
export type RemoveRequest = Message<'filesystem.RemoveRequest'> & {
  /**
   * @generated from field: string path = 1;
   */
  path: string
}

/**
 * Describes the message filesystem.RemoveRequest.
 * Use `create(RemoveRequestSchema)` to create a new message.
 */
export const RemoveRequestSchema: GenMessage<RemoveRequest> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 4)

/**
 * @generated from message filesystem.RemoveResponse
 */
export type RemoveResponse = Message<'filesystem.RemoveResponse'> & {}

/**
 * Describes the message filesystem.RemoveResponse.
 * Use `create(RemoveResponseSchema)` to create a new message.
 */
export const RemoveResponseSchema: GenMessage<RemoveResponse> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 5)

/**
 * @generated from message filesystem.StatRequest
 */
export type StatRequest = Message<'filesystem.StatRequest'> & {
  /**
   * @generated from field: string path = 1;
   */
  path: string
}

/**
 * Describes the message filesystem.StatRequest.
 * Use `create(StatRequestSchema)` to create a new message.
 */
export const StatRequestSchema: GenMessage<StatRequest> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 6)

/**
 * @generated from message filesystem.StatResponse
 */
export type StatResponse = Message<'filesystem.StatResponse'> & {
  /**
   * @generated from field: filesystem.EntryInfo entry = 1;
   */
  entry?: EntryInfo
}

/**
 * Describes the message filesystem.StatResponse.
 * Use `create(StatResponseSchema)` to create a new message.
 */
export const StatResponseSchema: GenMessage<StatResponse> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 7)

/**
 * @generated from message filesystem.EntryInfo
 */
export type EntryInfo = Message<'filesystem.EntryInfo'> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string

  /**
   * @generated from field: filesystem.FileType type = 2;
   */
  type: FileType

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

  /**
   * @generated from field: int64 size = 4;
   */
  size: bigint

  /**
   * @generated from field: uint32 mode = 5;
   */
  mode: number

  /**
   * @generated from field: string permissions = 6;
   */
  permissions: string

  /**
   * @generated from field: string owner = 7;
   */
  owner: string

  /**
   * @generated from field: string group = 8;
   */
  group: string

  /**
   * @generated from field: google.protobuf.Timestamp modified_time = 9;
   */
  modifiedTime?: Timestamp

  /**
   * If the entry is a symlink, this field contains the target of the symlink.
   *
   * @generated from field: optional string symlink_target = 10;
   */
  symlinkTarget?: string

  /**
   * User-defined metadata stored as extended attributes (xattrs) on the file.
   * Keys live under the `user.e2b.` xattr namespace; the prefix is stripped here.
   * Plain `user.*` xattrs written by other tooling are not reflected.
   *
   * @generated from field: map<string, string> metadata = 11;
   */
  metadata: { [key: string]: string }
}

/**
 * Describes the message filesystem.EntryInfo.
 * Use `create(EntryInfoSchema)` to create a new message.
 */
export const EntryInfoSchema: GenMessage<EntryInfo> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 8)

/**
 * @generated from message filesystem.ListDirRequest
 */
export type ListDirRequest = Message<'filesystem.ListDirRequest'> & {
  /**
   * @generated from field: string path = 1;
   */
  path: string

  /**
   * @generated from field: uint32 depth = 2;
   */
  depth: number
}

/**
 * Describes the message filesystem.ListDirRequest.
 * Use `create(ListDirRequestSchema)` to create a new message.
 */
export const ListDirRequestSchema: GenMessage<ListDirRequest> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 9)

/**
 * @generated from message filesystem.ListDirResponse
 */
export type ListDirResponse = Message<'filesystem.ListDirResponse'> & {
  /**
   * @generated from field: repeated filesystem.EntryInfo entries = 1;
   */
  entries: EntryInfo[]
}

/**
 * Describes the message filesystem.ListDirResponse.
 * Use `create(ListDirResponseSchema)` to create a new message.
 */
export const ListDirResponseSchema: GenMessage<ListDirResponse> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 10)

/**
 * @generated from message filesystem.WatchDirRequest
 */
export type WatchDirRequest = Message<'filesystem.WatchDirRequest'> & {
  /**
   * @generated from field: string path = 1;
   */
  path: string

  /**
   * @generated from field: bool recursive = 2;
   */
  recursive: boolean

  /**
   * If true, each FilesystemEvent includes the EntryInfo of the affected entry, when available.
   *
   * @generated from field: bool include_entry = 3;
   */
  includeEntry: boolean

  /**
   * If true, allows watching paths on network filesystem mounts (NFS, CIFS, SMB, FUSE).
   * Events on network mounts may be unreliable or not delivered at all.
   *
   * @generated from field: bool allow_network_mounts = 4;
   */
  allowNetworkMounts: boolean
}

/**
 * Describes the message filesystem.WatchDirRequest.
 * Use `create(WatchDirRequestSchema)` to create a new message.
 */
export const WatchDirRequestSchema: GenMessage<WatchDirRequest> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 11)

/**
 * @generated from message filesystem.FilesystemEvent
 */
export type FilesystemEvent = Message<'filesystem.FilesystemEvent'> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string

  /**
   * @generated from field: filesystem.EventType type = 2;
   */
  type: EventType

  /**
   * Info of the entry that triggered the event. Only populated when include_entry
   * was requested and the entry could be stat-ed (e.g. not set for remove/rename-away
   * events, where the entry no longer exists at this path).
   *
   * @generated from field: optional filesystem.EntryInfo entry = 3;
   */
  entry?: EntryInfo
}

/**
 * Describes the message filesystem.FilesystemEvent.
 * Use `create(FilesystemEventSchema)` to create a new message.
 */
export const FilesystemEventSchema: GenMessage<FilesystemEvent> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 12)

/**
 * @generated from message filesystem.WatchDirResponse
 */
export type WatchDirResponse = Message<'filesystem.WatchDirResponse'> & {
  /**
   * @generated from oneof filesystem.WatchDirResponse.event
   */
  event:
    | {
        /**
         * @generated from field: filesystem.WatchDirResponse.StartEvent start = 1;
         */
        value: WatchDirResponse_StartEvent
        case: 'start'
      }
    | {
        /**
         * @generated from field: filesystem.FilesystemEvent filesystem = 2;
         */
        value: FilesystemEvent
        case: 'filesystem'
      }
    | {
        /**
         * @generated from field: filesystem.WatchDirResponse.KeepAlive keepalive = 3;
         */
        value: WatchDirResponse_KeepAlive
        case: 'keepalive'
      }
    | { case: undefined; value?: undefined }
}

/**
 * Describes the message filesystem.WatchDirResponse.
 * Use `create(WatchDirResponseSchema)` to create a new message.
 */
export const WatchDirResponseSchema: GenMessage<WatchDirResponse> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 13)

/**
 * @generated from message filesystem.WatchDirResponse.StartEvent
 */
export type WatchDirResponse_StartEvent =
  Message<'filesystem.WatchDirResponse.StartEvent'> & {}

/**
 * Describes the message filesystem.WatchDirResponse.StartEvent.
 * Use `create(WatchDirResponse_StartEventSchema)` to create a new message.
 */
export const WatchDirResponse_StartEventSchema: GenMessage<WatchDirResponse_StartEvent> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 13, 0)

/**
 * @generated from message filesystem.WatchDirResponse.KeepAlive
 */
export type WatchDirResponse_KeepAlive =
  Message<'filesystem.WatchDirResponse.KeepAlive'> & {}

/**
 * Describes the message filesystem.WatchDirResponse.KeepAlive.
 * Use `create(WatchDirResponse_KeepAliveSchema)` to create a new message.
 */
export const WatchDirResponse_KeepAliveSchema: GenMessage<WatchDirResponse_KeepAlive> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 13, 1)

/**
 * @generated from message filesystem.CreateWatcherRequest
 */
export type CreateWatcherRequest =
  Message<'filesystem.CreateWatcherRequest'> & {
    /**
     * @generated from field: string path = 1;
     */
    path: string

    /**
     * @generated from field: bool recursive = 2;
     */
    recursive: boolean

    /**
     * If true, each FilesystemEvent includes the EntryInfo of the affected entry, when available.
     *
     * @generated from field: bool include_entry = 3;
     */
    includeEntry: boolean

    /**
     * If true, allows watching paths on network filesystem mounts (NFS, CIFS, SMB, FUSE).
     * Events on network mounts may be unreliable or not delivered at all.
     *
     * @generated from field: bool allow_network_mounts = 4;
     */
    allowNetworkMounts: boolean
  }

/**
 * Describes the message filesystem.CreateWatcherRequest.
 * Use `create(CreateWatcherRequestSchema)` to create a new message.
 */
export const CreateWatcherRequestSchema: GenMessage<CreateWatcherRequest> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 14)

/**
 * @generated from message filesystem.CreateWatcherResponse
 */
export type CreateWatcherResponse =
  Message<'filesystem.CreateWatcherResponse'> & {
    /**
     * @generated from field: string watcher_id = 1;
     */
    watcherId: string
  }

/**
 * Describes the message filesystem.CreateWatcherResponse.
 * Use `create(CreateWatcherResponseSchema)` to create a new message.
 */
export const CreateWatcherResponseSchema: GenMessage<CreateWatcherResponse> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 15)

/**
 * @generated from message filesystem.GetWatcherEventsRequest
 */
export type GetWatcherEventsRequest =
  Message<'filesystem.GetWatcherEventsRequest'> & {
    /**
     * @generated from field: string watcher_id = 1;
     */
    watcherId: string
  }

/**
 * Describes the message filesystem.GetWatcherEventsRequest.
 * Use `create(GetWatcherEventsRequestSchema)` to create a new message.
 */
export const GetWatcherEventsRequestSchema: GenMessage<GetWatcherEventsRequest> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 16)

/**
 * @generated from message filesystem.GetWatcherEventsResponse
 */
export type GetWatcherEventsResponse =
  Message<'filesystem.GetWatcherEventsResponse'> & {
    /**
     * @generated from field: repeated filesystem.FilesystemEvent events = 1;
     */
    events: FilesystemEvent[]
  }

/**
 * Describes the message filesystem.GetWatcherEventsResponse.
 * Use `create(GetWatcherEventsResponseSchema)` to create a new message.
 */
export const GetWatcherEventsResponseSchema: GenMessage<GetWatcherEventsResponse> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 17)

/**
 * @generated from message filesystem.RemoveWatcherRequest
 */
export type RemoveWatcherRequest =
  Message<'filesystem.RemoveWatcherRequest'> & {
    /**
     * @generated from field: string watcher_id = 1;
     */
    watcherId: string
  }

/**
 * Describes the message filesystem.RemoveWatcherRequest.
 * Use `create(RemoveWatcherRequestSchema)` to create a new message.
 */
export const RemoveWatcherRequestSchema: GenMessage<RemoveWatcherRequest> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 18)

/**
 * @generated from message filesystem.RemoveWatcherResponse
 */
export type RemoveWatcherResponse =
  Message<'filesystem.RemoveWatcherResponse'> & {}

/**
 * Describes the message filesystem.RemoveWatcherResponse.
 * Use `create(RemoveWatcherResponseSchema)` to create a new message.
 */
export const RemoveWatcherResponseSchema: GenMessage<RemoveWatcherResponse> =
  /*@__PURE__*/
  messageDesc(file_filesystem_filesystem, 19)

/**
 * @generated from enum filesystem.FileType
 */
export enum FileType {
  /**
   * @generated from enum value: FILE_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: FILE_TYPE_FILE = 1;
   */
  FILE = 1,

  /**
   * @generated from enum value: FILE_TYPE_DIRECTORY = 2;
   */
  DIRECTORY = 2,
}

/**
 * Describes the enum filesystem.FileType.
 */
export const FileTypeSchema: GenEnum<FileType> =
  /*@__PURE__*/
  enumDesc(file_filesystem_filesystem, 0)

/**
 * @generated from enum filesystem.EventType
 */
export enum EventType {
  /**
   * @generated from enum value: EVENT_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: EVENT_TYPE_CREATE = 1;
   */
  CREATE = 1,

  /**
   * @generated from enum value: EVENT_TYPE_WRITE = 2;
   */
  WRITE = 2,

  /**
   * @generated from enum value: EVENT_TYPE_REMOVE = 3;
   */
  REMOVE = 3,

  /**
   * @generated from enum value: EVENT_TYPE_RENAME = 4;
   */
  RENAME = 4,

  /**
   * @generated from enum value: EVENT_TYPE_CHMOD = 5;
   */
  CHMOD = 5,
}

/**
 * Describes the enum filesystem.EventType.
 */
export const EventTypeSchema: GenEnum<EventType> =
  /*@__PURE__*/
  enumDesc(file_filesystem_filesystem, 1)

/**
 * @generated from service filesystem.Filesystem
 */
export const Filesystem: GenService<{
  /**
   * @generated from rpc filesystem.Filesystem.Stat
   */
  stat: {
    methodKind: 'unary'
    input: typeof StatRequestSchema
    output: typeof StatResponseSchema
  }
  /**
   * @generated from rpc filesystem.Filesystem.MakeDir
   */
  makeDir: {
    methodKind: 'unary'
    input: typeof MakeDirRequestSchema
    output: typeof MakeDirResponseSchema
  }
  /**
   * @generated from rpc filesystem.Filesystem.Move
   */
  move: {
    methodKind: 'unary'
    input: typeof MoveRequestSchema
    output: typeof MoveResponseSchema
  }
  /**
   * @generated from rpc filesystem.Filesystem.ListDir
   */
  listDir: {
    methodKind: 'unary'
    input: typeof ListDirRequestSchema
    output: typeof ListDirResponseSchema
  }
  /**
   * @generated from rpc filesystem.Filesystem.Remove
   */
  remove: {
    methodKind: 'unary'
    input: typeof RemoveRequestSchema
    output: typeof RemoveResponseSchema
  }
  /**
   * @generated from rpc filesystem.Filesystem.WatchDir
   */
  watchDir: {
    methodKind: 'server_streaming'
    input: typeof WatchDirRequestSchema
    output: typeof WatchDirResponseSchema
  }
  /**
   * Non-streaming versions of WatchDir
   *
   * @generated from rpc filesystem.Filesystem.CreateWatcher
   */
  createWatcher: {
    methodKind: 'unary'
    input: typeof CreateWatcherRequestSchema
    output: typeof CreateWatcherResponseSchema
  }
  /**
   * @generated from rpc filesystem.Filesystem.GetWatcherEvents
   */
  getWatcherEvents: {
    methodKind: 'unary'
    input: typeof GetWatcherEventsRequestSchema
    output: typeof GetWatcherEventsResponseSchema
  }
  /**
   * @generated from rpc filesystem.Filesystem.RemoveWatcher
   */
  removeWatcher: {
    methodKind: 'unary'
    input: typeof RemoveWatcherRequestSchema
    output: typeof RemoveWatcherResponseSchema
  }
}> = /*@__PURE__*/ serviceDesc(file_filesystem_filesystem, 0)
