import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch';
import type { WriteFileData, FsReadData, FsOperationData, FsSearchData, FsStreamingSearchData, FsCancelStreamingSearchData, FsPathSearchData, FsUploadData, FsDownloadData, FsReadFileData, FsReadDirData, FsStatData, FsCopyData, FsRenameData, FsRemoveData, FsMkdirData, FsWatchData, FsUnwatchData } from './types.gen';
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & {
    /**
     * You can provide a client instance returned by `createClient()` instead of
     * individual options. This might be also useful if you want to implement a
     * custom client.
     */
    client?: Client;
};
/**
 * Write to a file
 * Write content to a file at the specified path
 */
export declare const writeFile: <ThrowOnError extends boolean = false>(options: Options<WriteFileData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: {
        [key: string]: unknown;
    };
}, import("./types.gen").ErrorResponse & {
    error?: ({
        code?: "DefaultError";
    } & import("./types.gen").DefaultError) | ({
        code?: "RawFsError";
    } & import("./types.gen").RawFsError);
}, ThrowOnError>;
/**
 * Read file system
 * Retrieve the latest snapshot of the server's MemoryFS file and children list
 */
export declare const fsRead: <ThrowOnError extends boolean = false>(options?: Options<FsReadData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: import("./types.gen").FsReadResult;
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").DefaultError;
}, ThrowOnError>;
/**
 * Perform file system operation
 * Send a tree operation reflecting filesystem operations
 */
export declare const fsOperation: <ThrowOnError extends boolean = false>(options: Options<FsOperationData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: import("./types.gen").FsOperationResult;
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").DefaultError;
}, ThrowOnError>;
/**
 * Search files
 * Search for content in files
 */
export declare const fsSearch: <ThrowOnError extends boolean = false>(options: Options<FsSearchData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: Array<import("./types.gen").SearchResult>;
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").DefaultError;
}, ThrowOnError>;
/**
 * Start streaming search
 * Start a streaming search for content in files
 */
export declare const fsStreamingSearch: <ThrowOnError extends boolean = false>(options: Options<FsStreamingSearchData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: {
        searchId?: string;
    };
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").DefaultError;
}, ThrowOnError>;
/**
 * Cancel streaming search
 * Cancel an ongoing streaming search
 */
export declare const fsCancelStreamingSearch: <ThrowOnError extends boolean = false>(options: Options<FsCancelStreamingSearchData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: {
        searchId?: string;
    };
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").DefaultError;
}, ThrowOnError>;
/**
 * Search file paths
 * Search for file paths matching a pattern
 */
export declare const fsPathSearch: <ThrowOnError extends boolean = false>(options: Options<FsPathSearchData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: import("./types.gen").PathSearchResult;
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").DefaultError;
}, ThrowOnError>;
/**
 * Upload file
 * Upload a file to the specified parent directory
 */
export declare const fsUpload: <ThrowOnError extends boolean = false>(options: Options<FsUploadData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: {
        fileId?: string;
    };
}, import("./types.gen").ErrorResponse & {
    error?: ({
        code?: "DefaultError";
    } & import("./types.gen").DefaultError) | ({
        code?: "InvalidIdError";
    } & import("./types.gen").InvalidIdError);
}, ThrowOnError>;
/**
 * Download files
 * Download files at a specified path as a zip
 */
export declare const fsDownload: <ThrowOnError extends boolean = false>(options: Options<FsDownloadData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: {
        downloadUrl?: string;
    };
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").DefaultError;
}, ThrowOnError>;
/**
 * Read file content
 * Read the content of a file at the specified path
 */
export declare const fsReadFile: <ThrowOnError extends boolean = false>(options: Options<FsReadFileData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: import("./types.gen").FsReadFileResult;
}, import("./types.gen").ErrorResponse & {
    error?: ({
        code?: "DefaultError";
    } & import("./types.gen").DefaultError) | ({
        code?: "RawFsError";
    } & import("./types.gen").RawFsError);
}, ThrowOnError>;
/**
 * Read directory contents
 * List the contents of a directory at the specified path
 */
export declare const fsReadDir: <ThrowOnError extends boolean = false>(options: Options<FsReadDirData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: import("./types.gen").FsReadDirResult;
}, import("./types.gen").ErrorResponse & {
    error?: ({
        code?: "DefaultError";
    } & import("./types.gen").DefaultError) | ({
        code?: "RawFsError";
    } & import("./types.gen").RawFsError);
}, ThrowOnError>;
/**
 * Get file/directory stats
 * Get stats for a file or directory at the specified path
 */
export declare const fsStat: <ThrowOnError extends boolean = false>(options: Options<FsStatData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: import("./types.gen").FsStatResult;
}, import("./types.gen").ErrorResponse & {
    error?: ({
        code?: "DefaultError";
    } & import("./types.gen").DefaultError) | ({
        code?: "RawFsError";
    } & import("./types.gen").RawFsError);
}, ThrowOnError>;
/**
 * Copy file/directory
 * Copy a file or directory from one location to another
 */
export declare const fsCopy: <ThrowOnError extends boolean = false>(options: Options<FsCopyData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: {
        [key: string]: unknown;
    };
}, import("./types.gen").ErrorResponse & {
    error?: ({
        code?: "DefaultError";
    } & import("./types.gen").DefaultError) | ({
        code?: "RawFsError";
    } & import("./types.gen").RawFsError);
}, ThrowOnError>;
/**
 * Rename file/directory
 * Rename a file or directory (move from one location to another)
 */
export declare const fsRename: <ThrowOnError extends boolean = false>(options: Options<FsRenameData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: {
        [key: string]: unknown;
    };
}, import("./types.gen").ErrorResponse & {
    error?: ({
        code?: "DefaultError";
    } & import("./types.gen").DefaultError) | ({
        code?: "RawFsError";
    } & import("./types.gen").RawFsError);
}, ThrowOnError>;
/**
 * Remove file/directory
 * Delete a file or directory at the specified path
 */
export declare const fsRemove: <ThrowOnError extends boolean = false>(options: Options<FsRemoveData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: {
        [key: string]: unknown;
    };
}, import("./types.gen").ErrorResponse & {
    error?: ({
        code?: "DefaultError";
    } & import("./types.gen").DefaultError) | ({
        code?: "RawFsError";
    } & import("./types.gen").RawFsError);
}, ThrowOnError>;
/**
 * Create directory
 * Create a new directory at the specified path
 */
export declare const fsMkdir: <ThrowOnError extends boolean = false>(options: Options<FsMkdirData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: {
        [key: string]: unknown;
    };
}, import("./types.gen").ErrorResponse & {
    error?: ({
        code?: "DefaultError";
    } & import("./types.gen").DefaultError) | ({
        code?: "RawFsError";
    } & import("./types.gen").RawFsError);
}, ThrowOnError>;
/**
 * Watch file/directory
 * Watch a file or directory for changes
 */
export declare const fsWatch: <ThrowOnError extends boolean = false>(options: Options<FsWatchData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: import("./types.gen").FsWatchResult;
}, import("./types.gen").ErrorResponse & {
    error?: ({
        code?: "DefaultError";
    } & import("./types.gen").DefaultError) | ({
        code?: "RawFsError";
    } & import("./types.gen").RawFsError);
}, ThrowOnError>;
/**
 * Stop watching file/directory
 * Stop watching a file or directory for changes
 */
export declare const fsUnwatch: <ThrowOnError extends boolean = false>(options: Options<FsUnwatchData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: {
        [key: string]: unknown;
    };
}, import("./types.gen").ErrorResponse & {
    error?: ({
        code?: "DefaultError";
    } & import("./types.gen").DefaultError) | ({
        code?: "RawFsError";
    } & import("./types.gen").RawFsError);
}, ThrowOnError>;
