import { Request, MediaConnect as AWSMediaConnect } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSMediaConnect> = AWSMediaConnect[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSMediaConnect, Extras> = AWSMediaConnect[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class MediaConnect {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "mediaconnect";
    readonly global: false;
    readonly category: "Media Services";
    readonly topLevelCalls: readonly ["listEntitlements", "listFlows", "listOfferings", "listReservations"];
    addFlowMediaStreams: (params: ParamsFrom<'addFlowMediaStreams', Record<string, never>>) => Promise<ReturnTypeFrom<'addFlowMediaStreams'>>;
    addFlowOutputs: (params: ParamsFrom<'addFlowOutputs', Record<string, never>>) => Promise<ReturnTypeFrom<'addFlowOutputs'>>;
    addFlowSources: (params: ParamsFrom<'addFlowSources', Record<string, never>>) => Promise<ReturnTypeFrom<'addFlowSources'>>;
    addFlowVpcInterfaces: (params: ParamsFrom<'addFlowVpcInterfaces', Record<string, never>>) => Promise<ReturnTypeFrom<'addFlowVpcInterfaces'>>;
    createFlow: (params: ParamsFrom<'createFlow', Record<string, never>>) => Promise<ReturnTypeFrom<'createFlow'>>;
    deleteFlow: (params: ParamsFrom<'deleteFlow', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteFlow'>>;
    describeFlow: (params: ParamsFrom<'describeFlow', Record<string, never>>) => Promise<ReturnTypeFrom<'describeFlow'>>;
    describeOffering: (params: ParamsFrom<'describeOffering', Record<string, never>>) => Promise<ReturnTypeFrom<'describeOffering'>>;
    describeReservation: (params: ParamsFrom<'describeReservation', Record<string, never>>) => Promise<ReturnTypeFrom<'describeReservation'>>;
    grantFlowEntitlements: (params: ParamsFrom<'grantFlowEntitlements', Record<string, never>>) => Promise<ReturnTypeFrom<'grantFlowEntitlements'>>;
    listEntitlements(params: {
        [K in keyof ParamsFrom<'listEntitlements', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listEntitlements', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listEntitlements'>]-?: ReturnTypeFrom<'listEntitlements'>[K];
        }['Entitlements'];
    }>;
    listFlows(params: {
        [K in keyof ParamsFrom<'listFlows', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listFlows', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listFlows'>]-?: ReturnTypeFrom<'listFlows'>[K];
        }['Flows'];
    }>;
    listOfferings(params: {
        [K in keyof ParamsFrom<'listOfferings', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listOfferings', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listOfferings'>]-?: ReturnTypeFrom<'listOfferings'>[K];
        }['Offerings'];
    }>;
    listReservations(params: {
        [K in keyof ParamsFrom<'listReservations', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listReservations', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listReservations'>]-?: ReturnTypeFrom<'listReservations'>[K];
        }['Reservations'];
    }>;
    listTagsForResource: (params: ParamsFrom<'listTagsForResource', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForResource'>>;
    purchaseOffering: (params: ParamsFrom<'purchaseOffering', Record<string, never>>) => Promise<ReturnTypeFrom<'purchaseOffering'>>;
    removeFlowMediaStream: (params: ParamsFrom<'removeFlowMediaStream', Record<string, never>>) => Promise<ReturnTypeFrom<'removeFlowMediaStream'>>;
    removeFlowOutput: (params: ParamsFrom<'removeFlowOutput', Record<string, never>>) => Promise<ReturnTypeFrom<'removeFlowOutput'>>;
    removeFlowSource: (params: ParamsFrom<'removeFlowSource', Record<string, never>>) => Promise<ReturnTypeFrom<'removeFlowSource'>>;
    removeFlowVpcInterface: (params: ParamsFrom<'removeFlowVpcInterface', Record<string, never>>) => Promise<ReturnTypeFrom<'removeFlowVpcInterface'>>;
    revokeFlowEntitlement: (params: ParamsFrom<'revokeFlowEntitlement', Record<string, never>>) => Promise<ReturnTypeFrom<'revokeFlowEntitlement'>>;
    startFlow: (params: ParamsFrom<'startFlow', Record<string, never>>) => Promise<ReturnTypeFrom<'startFlow'>>;
    stopFlow: (params: ParamsFrom<'stopFlow', Record<string, never>>) => Promise<ReturnTypeFrom<'stopFlow'>>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    updateFlow: (params: ParamsFrom<'updateFlow', Record<string, never>>) => Promise<ReturnTypeFrom<'updateFlow'>>;
    updateFlowEntitlement: (params: ParamsFrom<'updateFlowEntitlement', Record<string, never>>) => Promise<ReturnTypeFrom<'updateFlowEntitlement'>>;
    updateFlowMediaStream: (params: ParamsFrom<'updateFlowMediaStream', Record<string, never>>) => Promise<ReturnTypeFrom<'updateFlowMediaStream'>>;
    updateFlowOutput: (params: ParamsFrom<'updateFlowOutput', Record<string, never>>) => Promise<ReturnTypeFrom<'updateFlowOutput'>>;
    updateFlowSource: (params: ParamsFrom<'updateFlowSource', Record<string, never>>) => Promise<ReturnTypeFrom<'updateFlowSource'>>;
    static fromClient(client: AWSMediaConnect): MediaConnect;
    static client(options?: AWSMediaConnect.Types.ClientConfiguration): MediaConnect;
}
export {};
