import { Request, RedshiftData as AWSRedshiftData } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSRedshiftData> = AWSRedshiftData[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSRedshiftData, Extras> = AWSRedshiftData[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class RedshiftData {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "redshift-data";
    readonly global: false;
    readonly category: "Database";
    readonly topLevelCalls: readonly ["listStatements"];
    batchExecuteStatement: (params: ParamsFrom<'batchExecuteStatement', Record<string, never>>) => Promise<ReturnTypeFrom<'batchExecuteStatement'>>;
    cancelStatement: (params: ParamsFrom<'cancelStatement', Record<string, never>>) => Promise<ReturnTypeFrom<'cancelStatement'>>;
    describeStatement: (params: ParamsFrom<'describeStatement', Record<string, never>>) => Promise<ReturnTypeFrom<'describeStatement'>>;
    describeTable(params: {
        [K in keyof ParamsFrom<'describeTable', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'describeTable', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'describeTable'>]-?: ReturnTypeFrom<'describeTable'>[K];
        }['ColumnList'];
    }>;
    executeStatement: (params: ParamsFrom<'executeStatement', Record<string, never>>) => Promise<ReturnTypeFrom<'executeStatement'>>;
    getStatementResult(params: {
        [K in keyof ParamsFrom<'getStatementResult', {
            next?: string;
        }>]: ParamsFrom<'getStatementResult', {
            next?: string;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'getStatementResult'>]-?: ReturnTypeFrom<'getStatementResult'>[K];
        }['Records'];
    }>;
    listDatabases(params: {
        [K in keyof ParamsFrom<'listDatabases', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listDatabases', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listDatabases'>]-?: ReturnTypeFrom<'listDatabases'>[K];
        }['Databases'];
    }>;
    listSchemas(params: {
        [K in keyof ParamsFrom<'listSchemas', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listSchemas', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listSchemas'>]-?: ReturnTypeFrom<'listSchemas'>[K];
        }['Schemas'];
    }>;
    listStatements(params: {
        [K in keyof ParamsFrom<'listStatements', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listStatements', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listStatements'>]-?: ReturnTypeFrom<'listStatements'>[K];
        }['Statements'];
    }>;
    listTables(params: {
        [K in keyof ParamsFrom<'listTables', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listTables', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listTables'>]-?: ReturnTypeFrom<'listTables'>[K];
        }['Tables'];
    }>;
    static fromClient(client: AWSRedshiftData): RedshiftData;
    static client(options?: AWSRedshiftData.Types.ClientConfiguration): RedshiftData;
}
export {};
