import { type PrismaClient, Prisma } from '@prisma/client';
import type { ActiveProvider, AvailableProvider, PrismaClientWithConfiguration } from './types/client';
export type AnyConnector = Connector<any>;
export declare abstract class Connector<C extends Prisma.DefaultPrismaClient, DecoratedClient extends C & {
    _activeProvider: ActiveProvider;
} = PrismaClientWithConfiguration<C>> {
    protected _client: DecoratedClient;
    protected requiredProvider: AvailableProvider;
    constructor(client: C, requiredProvider?: AvailableProvider);
    setClient(client: PrismaClient, requiredProvider?: AvailableProvider): this;
    get client(): DecoratedClient;
    get provider(): AvailableProvider;
    get activeProvider(): "mysql" | "postgres" | "sqlite" | "mssql" | "mongodb" | "cockroachdb";
    get models(): Prisma.ModelName[];
    private isValidClientConnector;
}
export declare class MySQLConnector<C extends Prisma.DefaultPrismaClient> extends Connector<C> {
    constructor(client: C);
}
export declare class PostgresConnector<C extends Prisma.DefaultPrismaClient> extends Connector<C> {
    constructor(client: C);
}
export declare class SQLiteConnector<C extends Prisma.DefaultPrismaClient> extends Connector<C> {
    constructor(client: C);
}
