import { Request, Keyspaces as AWSKeyspaces } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSKeyspaces> = AWSKeyspaces[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSKeyspaces, Extras> = AWSKeyspaces[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class Keyspaces {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "cassandra";
    readonly global: false;
    readonly category: "Database";
    readonly topLevelCalls: readonly ["listKeyspaces"];
    createKeyspace: (params: ParamsFrom<'createKeyspace', Record<string, never>>) => Promise<ReturnTypeFrom<'createKeyspace'>>;
    createTable: (params: ParamsFrom<'createTable', Record<string, never>>) => Promise<ReturnTypeFrom<'createTable'>>;
    deleteKeyspace: (params: ParamsFrom<'deleteKeyspace', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteKeyspace'>>;
    deleteTable: (params: ParamsFrom<'deleteTable', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteTable'>>;
    getKeyspace: (params: ParamsFrom<'getKeyspace', Record<string, never>>) => Promise<ReturnTypeFrom<'getKeyspace'>>;
    getTable: (params: ParamsFrom<'getTable', Record<string, never>>) => Promise<ReturnTypeFrom<'getTable'>>;
    listKeyspaces(params: {
        [K in keyof ParamsFrom<'listKeyspaces', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listKeyspaces', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listKeyspaces'>]-?: ReturnTypeFrom<'listKeyspaces'>[K];
        }['keyspaces'];
    }>;
    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'];
    }>;
    listTagsForResource(params: {
        [K in keyof ParamsFrom<'listTagsForResource', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listTagsForResource', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listTagsForResource'>]-?: ReturnTypeFrom<'listTagsForResource'>[K];
        }['tags'];
    }>;
    restoreTable: (params: ParamsFrom<'restoreTable', Record<string, never>>) => Promise<ReturnTypeFrom<'restoreTable'>>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    updateTable: (params: ParamsFrom<'updateTable', Record<string, never>>) => Promise<ReturnTypeFrom<'updateTable'>>;
    static fromClient(client: AWSKeyspaces): Keyspaces;
    static client(options?: AWSKeyspaces.Types.ClientConfiguration): Keyspaces;
}
export {};
