import { BasePlugin } from '../base/BasePlugin';
import { BuildEditDatasourceFormContext } from '../base/PluginInterface';
import { DBEnv, FormSchema } from '../type';
export declare class DatasourcePlugin extends BasePlugin {
    static id: string;
    buildEditDatasourceForm(schema: FormSchema, context: BuildEditDatasourceFormContext, options: {
        dialect?: string;
        defaultDatabaseEnv: DBEnv;
        datasourceEnvs?: Array<DBEnv>;
        allowedSyncModes?: Array<number>;
        enableReadWriteSplitting?: boolean;
    }): void;
    protected buildReadWriteSplittingForm(items: Array<any>): ({
        title: boolean;
        type: string;
        className: string;
        body: any[];
        visibleOn: string;
        name?: undefined;
        label?: undefined;
        pipeIn?: undefined;
        pipeOut?: undefined;
        inline?: undefined;
        options?: undefined;
        tabs?: undefined;
    } | {
        type: string;
        name: string;
        label: string;
        pipeIn: (value: any) => boolean;
        pipeOut: (value: any) => {
            loaderBalance: string;
            readDataSources: {}[];
        } | undefined;
        title?: undefined;
        className?: undefined;
        body?: undefined;
        visibleOn?: undefined;
        inline?: undefined;
        options?: undefined;
        tabs?: undefined;
    } | {
        type: string;
        name: string;
        label: string;
        visibleOn: string;
        inline: boolean;
        options: {
            label: string;
            value: string;
        }[];
        title?: undefined;
        className?: undefined;
        body?: undefined;
        pipeIn?: undefined;
        pipeOut?: undefined;
        tabs?: undefined;
    } | {
        type: string;
        visibleOn: string;
        tabs: {
            title: string;
            body: any[];
        }[];
        title?: undefined;
        className?: undefined;
        body?: undefined;
        name?: undefined;
        label?: undefined;
        pipeIn?: undefined;
        pipeOut?: undefined;
        inline?: undefined;
        options?: undefined;
    })[];
}
