import { TypeOf } from "zod";
export type Commands = "introspect" | "generate" | "check" | "up" | "drop" | "push";
/**
 * This function checks an input from a user and if there are any params together with config path - return true
 * @param options - user input
 * @param inputWhitelist - whitelist some cli options that can be used together with config option
 * @returns true if there was a collision, false if everything is valid
 */
export declare const assertCollisions: (options: Record<string, unknown>, command: Commands, inputWhitelist?: string[]) => "config" | "cli";
export declare const sqliteDriver: import("zod").ZodUnion<[import("zod").ZodLiteral<"better-sqlite">, import("zod").ZodLiteral<"turso">, import("zod").ZodLiteral<"libsql">, import("zod").ZodLiteral<"d1">, import("zod").ZodLiteral<"expo">]>;
export declare const postgresDriver: import("zod").ZodLiteral<"pg">;
export declare const mysqlDriver: import("zod").ZodLiteral<"mysql2">;
export declare const driver: import("zod").ZodUnion<[import("zod").ZodUnion<[import("zod").ZodLiteral<"better-sqlite">, import("zod").ZodLiteral<"turso">, import("zod").ZodLiteral<"libsql">, import("zod").ZodLiteral<"d1">, import("zod").ZodLiteral<"expo">]>, import("zod").ZodLiteral<"pg">, import("zod").ZodLiteral<"mysql2">]>;
export declare const configCommonSchema: import("zod").ZodObject<{
    dialect: import("zod").ZodEnum<["postgresql", "mysql", "sqlite"]>;
    schema: import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>;
    out: import("zod").ZodOptional<import("zod").ZodString>;
    breakpoints: import("zod").ZodDefault<import("zod").ZodBoolean>;
    driver: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodUnion<[import("zod").ZodLiteral<"better-sqlite">, import("zod").ZodLiteral<"turso">, import("zod").ZodLiteral<"libsql">, import("zod").ZodLiteral<"d1">, import("zod").ZodLiteral<"expo">]>, import("zod").ZodLiteral<"pg">, import("zod").ZodLiteral<"mysql2">]>>;
    tablesFilter: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>>;
    schemaFilter: import("zod").ZodDefault<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>>;
}, "strip", import("zod").ZodTypeAny, {
    driver?: "pg" | "turso" | "expo" | "mysql2" | "libsql" | "better-sqlite" | "d1" | undefined;
    out?: string | undefined;
    tablesFilter?: string | string[] | undefined;
    schema: string | string[];
    dialect: "mysql" | "postgresql" | "sqlite";
    breakpoints: boolean;
    schemaFilter: string | string[];
}, {
    driver?: "pg" | "turso" | "expo" | "mysql2" | "libsql" | "better-sqlite" | "d1" | undefined;
    out?: string | undefined;
    breakpoints?: boolean | undefined;
    tablesFilter?: string | string[] | undefined;
    schemaFilter?: string | string[] | undefined;
    schema: string | string[];
    dialect: "mysql" | "postgresql" | "sqlite";
}>;
export declare const casing: import("zod").ZodDefault<import("zod").ZodUnion<[import("zod").ZodLiteral<"camel">, import("zod").ZodLiteral<"preserve">]>>;
export declare const introspectParams: import("zod").ZodObject<{
    schema: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>>;
    out: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodString>>;
    breakpoints: import("zod").ZodDefault<import("zod").ZodBoolean>;
    tablesFilter: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>>;
    schemaFilter: import("zod").ZodDefault<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>>;
    introspect: import("zod").ZodDefault<import("zod").ZodObject<{
        casing: import("zod").ZodDefault<import("zod").ZodUnion<[import("zod").ZodLiteral<"camel">, import("zod").ZodLiteral<"preserve">]>>;
    }, "strip", import("zod").ZodTypeAny, {
        casing: "camel" | "preserve";
    }, {
        casing?: "camel" | "preserve" | undefined;
    }>>;
}, "strip", import("zod").ZodTypeAny, {
    schema?: string | string[] | undefined;
    tablesFilter?: string | string[] | undefined;
    introspect: {
        casing: "camel" | "preserve";
    };
    out: string;
    breakpoints: boolean;
    schemaFilter: string | string[];
}, {
    schema?: string | string[] | undefined;
    introspect?: {
        casing?: "camel" | "preserve" | undefined;
    } | undefined;
    out?: string | undefined;
    breakpoints?: boolean | undefined;
    tablesFilter?: string | string[] | undefined;
    schemaFilter?: string | string[] | undefined;
}>;
export type IntrospectParams = TypeOf<typeof introspectParams>;
export type Casing = TypeOf<typeof casing>;
export declare const configIntrospectCliSchema: import("zod").ZodObject<{
    schema: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>>;
    out: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodString>>;
    breakpoints: import("zod").ZodDefault<import("zod").ZodBoolean>;
    tablesFilter: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>>;
    schemaFilter: import("zod").ZodDefault<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>>;
    introspectCasing: import("zod").ZodDefault<import("zod").ZodUnion<[import("zod").ZodLiteral<"camel">, import("zod").ZodLiteral<"preserve">]>>;
}, "strip", import("zod").ZodTypeAny, {
    schema?: string | string[] | undefined;
    tablesFilter?: string | string[] | undefined;
    out: string;
    breakpoints: boolean;
    schemaFilter: string | string[];
    introspectCasing: "camel" | "preserve";
}, {
    schema?: string | string[] | undefined;
    out?: string | undefined;
    breakpoints?: boolean | undefined;
    tablesFilter?: string | string[] | undefined;
    schemaFilter?: string | string[] | undefined;
    introspectCasing?: "camel" | "preserve" | undefined;
}>;
export declare const configGenerateSchema: import("zod").ZodObject<{
    schema: import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>;
    out: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodString>>;
    breakpoints: import("zod").ZodDefault<import("zod").ZodBoolean>;
}, "strip", import("zod").ZodTypeAny, {
    schema: string | string[];
    out: string;
    breakpoints: boolean;
}, {
    out?: string | undefined;
    breakpoints?: boolean | undefined;
    schema: string | string[];
}>;
export type GenerateSchema = TypeOf<typeof configGenerateSchema>;
export declare const configPushSchema: import("zod").ZodObject<{
    dialect: import("zod").ZodEnum<["postgresql", "mysql", "sqlite"]>;
    schema: import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>;
    tablesFilter: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>>;
    schemaFilter: import("zod").ZodDefault<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>>;
    verbose: import("zod").ZodDefault<import("zod").ZodBoolean>;
    strict: import("zod").ZodDefault<import("zod").ZodBoolean>;
    out: import("zod").ZodOptional<import("zod").ZodString>;
}, "strip", import("zod").ZodTypeAny, {
    out?: string | undefined;
    tablesFilter?: string | string[] | undefined;
    strict: boolean;
    schema: string | string[];
    dialect: "mysql" | "postgresql" | "sqlite";
    schemaFilter: string | string[];
    verbose: boolean;
}, {
    strict?: boolean | undefined;
    out?: string | undefined;
    tablesFilter?: string | string[] | undefined;
    schemaFilter?: string | string[] | undefined;
    verbose?: boolean | undefined;
    schema: string | string[];
    dialect: "mysql" | "postgresql" | "sqlite";
}>;
export declare const mysqlConnectionSchema: import("zod").ZodUnion<[import("zod").ZodObject<{
    host: import("zod").ZodString;
    port: import("zod").ZodOptional<import("zod").ZodNumber>;
    user: import("zod").ZodDefault<import("zod").ZodString>;
    password: import("zod").ZodOptional<import("zod").ZodString>;
    database: import("zod").ZodString;
}, "strip", import("zod").ZodTypeAny, {
    port?: number | undefined;
    password?: string | undefined;
    host: string;
    user: string;
    database: string;
}, {
    port?: number | undefined;
    user?: string | undefined;
    password?: string | undefined;
    host: string;
    database: string;
}>, import("zod").ZodObject<{
    connectionString: import("zod").ZodString;
}, "strip", import("zod").ZodTypeAny, {
    connectionString: string;
}, {
    connectionString: string;
}>, import("zod").ZodObject<{}, "strip", import("zod").ZodTypeAny, {}, {}>]>;
export declare const mySqlCliConfigSchema: import("zod").ZodIntersection<import("zod").ZodObject<{
    dialect: import("zod").ZodEnum<["postgresql", "mysql", "sqlite"]>;
    schema: import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>;
    out: import("zod").ZodOptional<import("zod").ZodString>;
    breakpoints: import("zod").ZodDefault<import("zod").ZodBoolean>;
    driver: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodUnion<[import("zod").ZodLiteral<"better-sqlite">, import("zod").ZodLiteral<"turso">, import("zod").ZodLiteral<"libsql">, import("zod").ZodLiteral<"d1">, import("zod").ZodLiteral<"expo">]>, import("zod").ZodLiteral<"pg">, import("zod").ZodLiteral<"mysql2">]>>;
    tablesFilter: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>>;
    schemaFilter: import("zod").ZodDefault<import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>>;
}, "strip", import("zod").ZodTypeAny, {
    driver?: "pg" | "turso" | "expo" | "mysql2" | "libsql" | "better-sqlite" | "d1" | undefined;
    out?: string | undefined;
    tablesFilter?: string | string[] | undefined;
    schema: string | string[];
    dialect: "mysql" | "postgresql" | "sqlite";
    breakpoints: boolean;
    schemaFilter: string | string[];
}, {
    driver?: "pg" | "turso" | "expo" | "mysql2" | "libsql" | "better-sqlite" | "d1" | undefined;
    out?: string | undefined;
    breakpoints?: boolean | undefined;
    tablesFilter?: string | string[] | undefined;
    schemaFilter?: string | string[] | undefined;
    schema: string | string[];
    dialect: "mysql" | "postgresql" | "sqlite";
}>, import("zod").ZodUnion<[import("zod").ZodObject<{
    host: import("zod").ZodString;
    port: import("zod").ZodOptional<import("zod").ZodNumber>;
    user: import("zod").ZodDefault<import("zod").ZodString>;
    password: import("zod").ZodOptional<import("zod").ZodString>;
    database: import("zod").ZodString;
}, "strip", import("zod").ZodTypeAny, {
    port?: number | undefined;
    password?: string | undefined;
    host: string;
    user: string;
    database: string;
}, {
    port?: number | undefined;
    user?: string | undefined;
    password?: string | undefined;
    host: string;
    database: string;
}>, import("zod").ZodObject<{
    connectionString: import("zod").ZodString;
}, "strip", import("zod").ZodTypeAny, {
    connectionString: string;
}, {
    connectionString: string;
}>, import("zod").ZodObject<{}, "strip", import("zod").ZodTypeAny, {}, {}>]>>;
export type MySqlCliConfig = TypeOf<typeof mySqlCliConfigSchema>;
export type CliConfig = MySqlCliConfig;
export type SqliteDriver = TypeOf<typeof sqliteDriver>;
export type MysqlDriver = TypeOf<typeof mysqlDriver>;
export type PostgresDriver = TypeOf<typeof postgresDriver>;
export type Driver = TypeOf<typeof driver>;
