import { DataSource } from './source-base';
import { BaseTable } from '../table';
type TableRow = {
    id: number;
    createdAt: string;
    updatedAt: string;
    [key: string]: any;
};
type TableSourceOptions<TRow extends TableRow = TableRow> = {
    id?: string;
    transform?: (context: {
        row: TRow;
        content: string;
    }) => string | Promise<string>;
};
export declare class TableSource<TRow extends TableRow = TableRow> extends DataSource {
    readonly table: BaseTable<any>;
    private transformFn;
    private constructor();
    /** Get serializable configuration for change detection */
    getConfig(): Record<string, unknown>;
    get syncWorkflow(): import("..").Workflow<`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<{
        offset: import("@botpress/sdk").ZodDefault<import("@botpress/sdk").ZodNumber>;
    }, "strip", {
        offset: number;
    }, {
        offset?: number | undefined;
    }>, Record<string, import("../../types").ZuiType>>;
    static fromTable<TRow extends TableRow = TableRow>(table: BaseTable<any>, options?: TableSourceOptions<TRow>): TableSource<TRow>;
}
export {};
//# sourceMappingURL=source-table.d.ts.map