import { MysqlCredentials } from "../validations/mysql";
import { PostgresCredentials } from "../validations/pg";
import { SqliteCredentials } from "../validations/sqlite";
import { Casing, CliConfig } from "../validations/common";
import type { Dialect } from "../../schemaValidator";
import { CliCheckConfig, CliConfigGenerate } from "../validations/cli";
export declare const safeRegister: () => Promise<{
    unregister: () => void;
}>;
export type GenerateConfig = {
    dialect: Dialect;
    schema: string | string[];
    out: string;
    breakpoints: boolean;
    name?: string;
    custom: boolean;
    bundle: boolean;
};
export declare const prepareGenerateConfig: (options: CliConfigGenerate) => Promise<GenerateConfig>;
export declare const flattenDatabaseCredentials: (config: any) => any;
export declare const preparePushConfig: (options: Record<string, unknown>) => Promise<({
    dialect: "mysql";
    credentials: MysqlCredentials;
} | {
    dialect: "postgresql";
    credentials: PostgresCredentials;
} | {
    dialect: "sqlite";
    credentials: SqliteCredentials;
}) & {
    schemaPath: string | string[];
    verbose: boolean;
    strict: boolean;
    tablesFilter: string[];
    schemasFilter: string[];
}>;
export declare const preparePullConfig: (options: Record<string, unknown>) => Promise<({
    dialect: "mysql";
    credentials: MysqlCredentials;
} | {
    dialect: "postgresql";
    credentials: PostgresCredentials;
} | {
    dialect: "sqlite";
    credentials: SqliteCredentials;
}) & {
    out: string;
    breakpoints: boolean;
    casing: Casing;
    tablesFilter: string[];
    schemasFilter: string[];
}>;
export declare const assertOutFolder: (it: CliCheckConfig) => Promise<{
    out: string;
    dialect: Dialect;
}>;
export declare const drizzleConfigFromFile: (configPath?: string) => Promise<CliConfig>;
export declare const readDrizzleConfig: (configPath?: string) => Promise<any>;
