import { Request, CodeStarNotifications as AWSCodeStarNotifications } from 'aws-sdk';
declare type ReturnTypeFrom<K extends keyof AWSCodeStarNotifications> = AWSCodeStarNotifications[K] extends (...args: any) => Request<infer R, any> ? R : never;
declare type ParamsFrom<K extends keyof AWSCodeStarNotifications, Extras> = AWSCodeStarNotifications[K] extends {
    (param: infer P, callback: (...args: any) => void): Request<infer R, any>;
    (callback: (...args: any) => void): any;
} ? P & Extras : never;
export declare class CodeStarNotifications {
    private readonly client;
    private constructor();
    readonly signingRegion: undefined;
    readonly service: "codestar-notifications";
    readonly global: false;
    readonly category: "Other";
    readonly topLevelCalls: readonly ["listEventTypes", "listNotificationRules", "listTargets"];
    createNotificationRule: (params: ParamsFrom<'createNotificationRule', Record<string, never>>) => Promise<ReturnTypeFrom<'createNotificationRule'>>;
    deleteNotificationRule: (params: ParamsFrom<'deleteNotificationRule', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteNotificationRule'>>;
    deleteTarget: (params: ParamsFrom<'deleteTarget', Record<string, never>>) => Promise<ReturnTypeFrom<'deleteTarget'>>;
    describeNotificationRule: (params: ParamsFrom<'describeNotificationRule', Record<string, never>>) => Promise<ReturnTypeFrom<'describeNotificationRule'>>;
    listEventTypes(params: {
        [K in keyof ParamsFrom<'listEventTypes', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listEventTypes', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listEventTypes'>]-?: ReturnTypeFrom<'listEventTypes'>[K];
        }['EventTypes'];
    }>;
    listNotificationRules(params: {
        [K in keyof ParamsFrom<'listNotificationRules', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listNotificationRules', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listNotificationRules'>]-?: ReturnTypeFrom<'listNotificationRules'>[K];
        }['NotificationRules'];
    }>;
    listTagsForResource: (params: ParamsFrom<'listTagsForResource', Record<string, never>>) => Promise<ReturnTypeFrom<'listTagsForResource'>>;
    listTargets(params: {
        [K in keyof ParamsFrom<'listTargets', {
            next?: string;
            limit?: number;
        }>]: ParamsFrom<'listTargets', {
            next?: string;
            limit?: number;
        }>[K];
    }): Promise<{
        next?: string | number;
        totalItems: number;
        member: {
            [K in keyof ReturnTypeFrom<'listTargets'>]-?: ReturnTypeFrom<'listTargets'>[K];
        }['Targets'];
    }>;
    subscribe: (params: ParamsFrom<'subscribe', Record<string, never>>) => Promise<ReturnTypeFrom<'subscribe'>>;
    tagResource: (params: ParamsFrom<'tagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'tagResource'>>;
    unsubscribe: (params: ParamsFrom<'unsubscribe', Record<string, never>>) => Promise<ReturnTypeFrom<'unsubscribe'>>;
    untagResource: (params: ParamsFrom<'untagResource', Record<string, never>>) => Promise<ReturnTypeFrom<'untagResource'>>;
    updateNotificationRule: (params: ParamsFrom<'updateNotificationRule', Record<string, never>>) => Promise<ReturnTypeFrom<'updateNotificationRule'>>;
    static fromClient(client: AWSCodeStarNotifications): CodeStarNotifications;
    static client(options?: AWSCodeStarNotifications.Types.ClientConfiguration): CodeStarNotifications;
}
export {};
