import { Request, Evidently as AWSEvidently } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSEvidently> = AWSEvidently[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSEvidently, Extras> = AWSEvidently[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class Evidently {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "evidently";
    readonly global: false;
    readonly category: "Other";
    readonly topLevelCalls: readonly ["listProjects", "listSegments"];
    batchEvaluateFeature: (params: ParamsFrom<'batchEvaluateFeature', Record<string, never>>) => Promise<ReturnTypeFrom<'batchEvaluateFeature'>>;
    createExperiment: (params: ParamsFrom<'createExperiment', Record<string, never>>) => Promise<ReturnTypeFrom<'createExperiment'>>;
    createFeature: (params: ParamsFrom<'createFeature', Record<string, never>>) => Promise<ReturnTypeFrom<'createFeature'>>;
    createLaunch: (params: ParamsFrom<'createLaunch', Record<string, never>>) => Promise<ReturnTypeFrom<'createLaunch'>>;
    createProject: (params: ParamsFrom<'createProject', Record<string, never>>) => Promise<ReturnTypeFrom<'createProject'>>;
    createSegment: (params: ParamsFrom<'createSegment', Record<string, never>>) => Promise<ReturnTypeFrom<'createSegment'>>;
    deleteExperiment: (params: ParamsFrom<'deleteExperiment', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteExperiment'>>;
    deleteFeature: (params: ParamsFrom<'deleteFeature', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteFeature'>>;
    deleteLaunch: (params: ParamsFrom<'deleteLaunch', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteLaunch'>>;
    deleteProject: (params: ParamsFrom<'deleteProject', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteProject'>>;
    deleteSegment: (params: ParamsFrom<'deleteSegment', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteSegment'>>;
    evaluateFeature: (params: ParamsFrom<'evaluateFeature', Record<string, never>>) => Promise<ReturnTypeFrom<'evaluateFeature'>>;
    getExperiment: (params: ParamsFrom<'getExperiment', Record<string, never>>) => Promise<ReturnTypeFrom<'getExperiment'>>;
    getExperimentResults: (params: ParamsFrom<'getExperimentResults', Record<string, never>>) => Promise<ReturnTypeFrom<'getExperimentResults'>>;
    getFeature: (params: ParamsFrom<'getFeature', Record<string, never>>) => Promise<ReturnTypeFrom<'getFeature'>>;
    getLaunch: (params: ParamsFrom<'getLaunch', Record<string, never>>) => Promise<ReturnTypeFrom<'getLaunch'>>;
    getProject: (params: ParamsFrom<'getProject', Record<string, never>>) => Promise<ReturnTypeFrom<'getProject'>>;
    getSegment: (params: ParamsFrom<'getSegment', Record<string, never>>) => Promise<ReturnTypeFrom<'getSegment'>>;
    listExperiments(params: {
        [K in keyof ParamsFrom<'listExperiments', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listExperiments', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listExperiments'>]-?: ReturnTypeFrom<'listExperiments'>[K];
        }['experiments'];
    }>;
    listFeatures(params: {
        [K in keyof ParamsFrom<'listFeatures', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listFeatures', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listFeatures'>]-?: ReturnTypeFrom<'listFeatures'>[K];
        }['features'];
    }>;
    listLaunches(params: {
        [K in keyof ParamsFrom<'listLaunches', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listLaunches', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listLaunches'>]-?: ReturnTypeFrom<'listLaunches'>[K];
        }['launches'];
    }>;
    listProjects(params: {
        [K in keyof ParamsFrom<'listProjects', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listProjects', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listProjects'>]-?: ReturnTypeFrom<'listProjects'>[K];
        }['projects'];
    }>;
    listSegmentReferences(params: {
        [K in keyof ParamsFrom<'listSegmentReferences', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listSegmentReferences', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listSegmentReferences'>]-?: ReturnTypeFrom<'listSegmentReferences'>[K];
        }['referencedBy'];
    }>;
    listSegments(params: {
        [K in keyof ParamsFrom<'listSegments', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listSegments', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listSegments'>]-?: ReturnTypeFrom<'listSegments'>[K];
        }['segments'];
    }>;
    listTagsForResource: (params: ParamsFrom<'listTagsForResource', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForResource'>>;
    putProjectEvents: (params: ParamsFrom<'putProjectEvents', Record<string, never>>) => Promise<ReturnTypeFrom<'putProjectEvents'>>;
    startExperiment: (params: ParamsFrom<'startExperiment', Record<string, never>>) => Promise<ReturnTypeFrom<'startExperiment'>>;
    startLaunch: (params: ParamsFrom<'startLaunch', Record<string, never>>) => Promise<ReturnTypeFrom<'startLaunch'>>;
    stopExperiment: (params: ParamsFrom<'stopExperiment', Record<string, never>>) => Promise<ReturnTypeFrom<'stopExperiment'>>;
    stopLaunch: (params: ParamsFrom<'stopLaunch', Record<string, never>>) => Promise<ReturnTypeFrom<'stopLaunch'>>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    testSegmentPattern: (params: ParamsFrom<'testSegmentPattern', Record<string, never>>) => Promise<ReturnTypeFrom<'testSegmentPattern'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    updateExperiment: (params: ParamsFrom<'updateExperiment', Record<string, never>>) => Promise<ReturnTypeFrom<'updateExperiment'>>;
    updateFeature: (params: ParamsFrom<'updateFeature', Record<string, never>>) => Promise<ReturnTypeFrom<'updateFeature'>>;
    updateLaunch: (params: ParamsFrom<'updateLaunch', Record<string, never>>) => Promise<ReturnTypeFrom<'updateLaunch'>>;
    updateProject: (params: ParamsFrom<'updateProject', Record<string, never>>) => Promise<ReturnTypeFrom<'updateProject'>>;
    updateProjectDataDelivery: (params: ParamsFrom<'updateProjectDataDelivery', Record<string, never>>) => Promise<ReturnTypeFrom<'updateProjectDataDelivery'>>;
    static fromClient(client: AWSEvidently): Evidently;
    static client(options?: AWSEvidently.Types.ClientConfiguration): Evidently;
}
export {};
