import { DataSource } from './source-base';
type DirectorySourceOptions = {
    id?: string;
    filter?: (filePath: string) => boolean;
};
export declare class DirectorySource extends DataSource {
    private _directoryPath;
    private _filterFn;
    private constructor();
    /** Get the directory path for this source */
    get directoryPath(): string;
    /** Get the filter function for this source */
    get filterFn(): ((filePath: string) => boolean) | undefined;
    /** Get serializable configuration for change detection */
    getConfig(): Record<string, unknown>;
    get syncWorkflow(): import("../workflow").BaseWorkflow<`data_source_sync_${string}`, import("@botpress/sdk").ZodObject<{
        dsId: import("@botpress/sdk").ZodString;
        kbName: import("@botpress/sdk").ZodString;
        kbId: import("@botpress/sdk").ZodString;
        force: import("@botpress/sdk").ZodDefault<import("@botpress/sdk").ZodOptional<import("@botpress/sdk").ZodBoolean>>;
    }, "strip", {
        kbId: string;
        kbName: string;
        dsId: string;
        force: boolean;
    }, {
        kbId: string;
        kbName: string;
        dsId: string;
        force?: boolean | undefined;
    }>, import("@botpress/sdk").ZodObject<{
        processed: import("@botpress/sdk").ZodDefault<import("@botpress/sdk").ZodNumber>;
        added: import("@botpress/sdk").ZodDefault<import("@botpress/sdk").ZodArray<import("@botpress/sdk").ZodObject<{
            file: import("@botpress/sdk").ZodString;
            name: import("@botpress/sdk").ZodString;
            hash: import("@botpress/sdk").ZodString;
            size: import("@botpress/sdk").ZodNumber;
        }, "strip", {
            name: string;
            size: number;
            hash: string;
            file: string;
        }, {
            name: string;
            size: number;
            hash: string;
            file: string;
        }>, "many">>;
        updated: import("@botpress/sdk").ZodDefault<import("@botpress/sdk").ZodArray<import("@botpress/sdk").ZodObject<{
            file: import("@botpress/sdk").ZodString;
            name: import("@botpress/sdk").ZodString;
            hash: import("@botpress/sdk").ZodString;
            size: import("@botpress/sdk").ZodNumber;
        }, "strip", {
            name: string;
            size: number;
            hash: string;
            file: string;
        }, {
            name: string;
            size: number;
            hash: string;
            file: string;
        }>, "many">>;
        deleted: import("@botpress/sdk").ZodDefault<import("@botpress/sdk").ZodArray<import("@botpress/sdk").ZodObject<{
            file: import("@botpress/sdk").ZodString;
            name: import("@botpress/sdk").ZodString;
            hash: import("@botpress/sdk").ZodString;
            size: import("@botpress/sdk").ZodNumber;
        }, "strip", {
            name: string;
            size: number;
            hash: string;
            file: string;
        }, {
            name: string;
            size: number;
            hash: string;
            file: string;
        }>, "many">>;
        errors: import("@botpress/sdk").ZodDefault<import("@botpress/sdk").ZodArray<import("@botpress/sdk").ZodString, "many">>;
    }, "strip", {
        processed: number;
        added: {
            name: string;
            size: number;
            hash: string;
            file: string;
        }[];
        updated: {
            name: string;
            size: number;
            hash: string;
            file: string;
        }[];
        deleted: {
            name: string;
            size: number;
            hash: string;
            file: string;
        }[];
        errors: string[];
    }, {
        processed?: number | undefined;
        added?: {
            name: string;
            size: number;
            hash: string;
            file: string;
        }[] | undefined;
        updated?: {
            name: string;
            size: number;
            hash: string;
            file: string;
        }[] | undefined;
        deleted?: {
            name: string;
            size: number;
            hash: string;
            file: string;
        }[] | undefined;
        errors?: string[] | undefined;
    }>, import("@botpress/sdk").ZodObject<{}, "strip", {}, {}>, Record<string, import("../../types").ZuiType>>;
    static fromPath(directoryPath: string, options?: DirectorySourceOptions): DirectorySource;
}
export {};
//# sourceMappingURL=source-directory.d.ts.map