import { z } from 'zod';
import { SnowflakeAuthenticationType, WarehouseTypes, type CreateBigqueryCredentials, type CreateClickhouseCredentials, type CreateDatabricksCredentials, type CreatePostgresCredentials, type CreateRedshiftCredentials, type CreateSnowflakeCredentials, type CreateTrinoCredentials } from './projects';
export type UserWarehouseCredentials = {
    uuid: string;
    userUuid: string;
    name: string;
    createdAt: Date;
    updatedAt: Date;
    credentials: Pick<CreateRedshiftCredentials | CreatePostgresCredentials | CreateSnowflakeCredentials | CreateTrinoCredentials | CreateClickhouseCredentials, 'type' | 'user'> | Pick<CreateBigqueryCredentials, 'type'> | Pick<CreateDatabricksCredentials, 'type'>;
};
export type UserWarehouseCredentialsWithSecrets = Pick<UserWarehouseCredentials, 'uuid'> & {
    credentials: Pick<CreateRedshiftCredentials, 'type' | 'user' | 'password'> | Pick<CreatePostgresCredentials, 'type' | 'user' | 'password'> | Pick<CreateSnowflakeCredentials, 'type' | 'user' | 'password' | 'authenticationType' | 'refreshToken'> | Pick<CreateTrinoCredentials, 'type' | 'user' | 'password'> | Pick<CreateClickhouseCredentials, 'type' | 'user' | 'password'> | Pick<CreateBigqueryCredentials, 'type' | 'keyfileContents' | 'authenticationType'> | (Pick<CreateDatabricksCredentials, 'type' | 'personalAccessToken' | 'authenticationType' | 'refreshToken'> & Partial<Pick<CreateDatabricksCredentials, 'database' | 'serverHostName' | 'httpPath'>>);
};
export type UpsertUserWarehouseCredentials = {
    name: string;
    credentials: UserWarehouseCredentialsWithSecrets['credentials'];
};
export declare const snowflakeSsoUserCredentialsSchema: z.ZodObject<{
    type: z.ZodLiteral<WarehouseTypes.SNOWFLAKE>;
    user: z.ZodOptional<z.ZodString>;
    password: z.ZodOptional<z.ZodString>;
    authenticationType: z.ZodLiteral<SnowflakeAuthenticationType.SSO>;
    refreshToken: z.ZodString;
}, "strict", z.ZodTypeAny, {
    type: WarehouseTypes.SNOWFLAKE;
    refreshToken: string;
    authenticationType: SnowflakeAuthenticationType.SSO;
    user?: string | undefined;
    password?: string | undefined;
}, {
    type: WarehouseTypes.SNOWFLAKE;
    refreshToken: string;
    authenticationType: SnowflakeAuthenticationType.SSO;
    user?: string | undefined;
    password?: string | undefined;
}>;
//# sourceMappingURL=userWarehouseCredentials.d.ts.map