export interface WhatsAppSignupCallback {
    /** The access token for your WhatsApp Business Account. The accessToken value is provided by Meta. */
    accessToken: string;
    /** The URL where WhatsApp will send callback notifications for this account. */
    callbackUrl?: string;
}
export interface WabaSetupFinalization {
    /** The ID of the linked WhatsApp Business Account, formatted as waba-01234567890123456789012345678901. */
    id?: string;
    /** The event destinations for the linked WhatsApp Business Account. */
    eventDestinations?: any[];
    /** An array of key and value pair tags. */
    tags?: any[];
}
export interface WhatsAppSetupFinalization {
    /** An Amazon Web Services access token generated by WhatsAppSignupCallback and used by WhatsAppSetupFinalization. */
    associateInProgressToken: string;
    /** An array of WabaPhoneNumberSetupFinalization objects containing the details of each phone number associated with the WhatsApp Business Account. */
    phoneNumbers: any[];
    /** Used to add a new phone number to an existing WhatsApp Business Account. This field can't be used when the waba field is present. */
    phoneNumberParent?: string;
    /** Used to create a new WhatsApp Business Account and add a phone number. This field can't be used when the phoneNumberParent field is present. */
    waba?: WabaSetupFinalization;
}
export interface LibraryTemplateBodyInputs {
    /** When true, includes a contact number in the template body. */
    addContactNumber?: boolean;
    /** When true, includes a "learn more" link in the template body. */
    addLearnMoreLink?: boolean;
    /** When true, includes security recommendations in the template body. */
    addSecurityRecommendation?: boolean;
    /** When true, includes a package tracking link in the template body. */
    addTrackPackageLink?: boolean;
    /** The number of minutes until a verification code or OTP expires. */
    codeExpirationMinutes?: number;
}
export interface MetaLibraryTemplate {
    /** The name to assign to the template. */
    templateName: string;
    /** The name of the template in Meta's library. */
    libraryTemplateName: string;
    /** The category of the template (for example, UTILITY or MARKETING). */
    templateCategory: string;
    /** The language code for the template (for example, en_US). */
    templateLanguage: string;
    /** Button customizations for the template. */
    libraryTemplateButtonInputs?: any[];
    /** Body text customizations for the template. */
    libraryTemplateBodyInputs?: LibraryTemplateBodyInputs;
}
export interface S3File {
    /** The bucket name. */
    bucketName: string;
    /** The S3 key prefix that defines the storage location of your media files. The prefix works like a folder path in S3, and is combined with the WhatsApp mediaId to create the final file path. For example */
    key: string;
}
export interface S3PresignedUrl {
    /** The presign url to the object. */
    url: string;
    /** A map of headers and their values. You must specify the Content-Type header when using PostWhatsAppMessageMedia. For a list of common headers, see Common Request Headers in the Amazon S3 API Reference */
    headers: Record<string, string>;
}
export interface WhatsAppBusinessAccountEventDestination {
    /** The ARN of the event destination. */
    eventDestinationArn: string;
    /** The Amazon Resource Name (ARN) of an Identity and Access Management role that is able to import phone numbers and write events. */
    roleArn?: string;
}
export interface Tag {
    /** The tag key. */
    key: string;
    /** The tag value. */
    value?: string;
}
export interface AssociateWhatsAppBusinessAccountInput {
    /** A JSON object that contains the phone numbers and WhatsApp Business Account to link to your account. */
    setupFinalization?: WhatsAppSetupFinalization;
    /** Contains the callback access token. */
    signupCallback?: WhatsAppSignupCallback;
}
export interface CreateWhatsAppMessageTemplateInput {
    /** The ID of the WhatsApp Business Account to associate with this template. */
    id: string;
    /** The complete template definition as a JSON blob. */
    templateDefinition: string;
}
export interface CreateWhatsAppMessageTemplateFromLibraryInput {
    /** The ID of the WhatsApp Business Account to associate with this template. */
    id: string;
    /** The template configuration from Meta's library, including customizations for buttons and body text. */
    metaLibraryTemplate: MetaLibraryTemplate;
}
export interface CreateWhatsAppMessageTemplateMediaInput {
    /** The ID of the WhatsApp Business Account associated with this media upload. */
    id: string;
    sourceS3File?: S3File;
}
export interface DeleteWhatsAppMessageMediaInput {
    /** The unique identifier of the media file to delete. Use the mediaId returned from PostWhatsAppMessageMedia. */
    mediaId: string;
    /** The unique identifier of the originating phone number associated with the media. Phone number identifiers are formatted as phone-number-id-01234567890123456789012345678901. Use GetLinkedWhatsAppBusine */
    originationPhoneNumberId: string;
}
export interface DeleteWhatsAppMessageTemplateInput {
    /** The ID of the WhatsApp Business Account associated with this template. */
    id: string;
    /** The name of the template to delete. */
    templateName: string;
    /** If true, deletes all language versions of the template. */
    deleteAllLanguages?: boolean;
    /** The numeric ID of the template assigned by Meta. */
    metaTemplateId?: string;
}
export interface DisassociateWhatsAppBusinessAccountInput {
    /** The unique identifier of your WhatsApp Business Account. WABA identifiers are formatted as waba-01234567890123456789012345678901. Use ListLinkedWhatsAppBusinessAccounts to list all WABAs and their det */
    id: string;
}
export interface GetLinkedWhatsAppBusinessAccountInput {
    /** The unique identifier, from Amazon Web Services, of the linked WhatsApp Business Account. WABA identifiers are formatted as waba-01234567890123456789012345678901. Use ListLinkedWhatsAppBusinessAccount */
    id: string;
}
export interface GetLinkedWhatsAppBusinessAccountPhoneNumberInput {
    /** The unique identifier of the phone number. Phone number identifiers are formatted as phone-number-id-01234567890123456789012345678901. Use GetLinkedWhatsAppBusinessAccount to find a phone number's id. */
    id: string;
}
export interface GetWhatsAppMessageMediaInput {
    /** The unique identifier for the media file. */
    mediaId: string;
    /** The unique identifier of the originating phone number for the WhatsApp message media. The phone number identifiers are formatted as phone-number-id-01234567890123456789012345678901. Use GetLinkedWhats */
    originationPhoneNumberId: string;
    /** The bucketName and key of the S3 media file. */
    destinationS3File?: S3File;
    /** The presign url of the media file. */
    destinationS3PresignedUrl?: S3PresignedUrl;
    /** Set to True to get only the metadata for the file. */
    metadataOnly?: boolean;
}
export interface GetWhatsAppMessageTemplateInput {
    /** The ID of the WhatsApp Business Account associated with this template. */
    id: string;
    /** The numeric ID of the template assigned by Meta. */
    metaTemplateId: string;
}
export interface ListLinkedWhatsAppBusinessAccountsInput {
    /** The maximum number of results to return. */
    maxResults?: number;
    /** The next token for pagination. */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to retrieve the tags from. */
    resourceArn: string;
}
export interface ListWhatsAppMessageTemplatesInput {
    /** The ID of the WhatsApp Business Account to list templates for. */
    id: string;
    /** The maximum number of results to return per page (1-100). */
    maxResults?: number;
    /** The token for the next page of results. */
    nextToken?: string;
}
export interface ListWhatsAppTemplateLibraryInput {
    /** The ID of the WhatsApp Business Account to list library templates for. */
    id: string;
    /** Map of filters to apply (searchKey, topic, usecase, industry, language). */
    filters?: Record<string, string>;
    /** The maximum number of results to return per page (1-100). */
    maxResults?: number;
    /** The token for the next page of results. */
    nextToken?: string;
}
export interface PostWhatsAppMessageMediaInput {
    /** The ID of the phone number to associate with the WhatsApp media file. The phone number identifiers are formatted as phone-number-id-01234567890123456789012345678901. Use GetLinkedWhatsAppBusinessAccou */
    originationPhoneNumberId: string;
    /** The source S3 url for the media file. */
    sourceS3File?: S3File;
    /** The source presign url of the media file. */
    sourceS3PresignedUrl?: S3PresignedUrl;
}
export interface PutWhatsAppBusinessAccountEventDestinationsInput {
    /** An array of WhatsAppBusinessAccountEventDestination event destinations. */
    eventDestinations: WhatsAppBusinessAccountEventDestination[];
    /** The unique identifier of your WhatsApp Business Account. WABA identifiers are formatted as waba-01234567890123456789012345678901. Use ListLinkedWhatsAppBusinessAccounts to list all WABAs and their det */
    id: string;
}
export interface SendWhatsAppMessageInput {
    /** The message to send through WhatsApp. The length is in KB. The message field passes through a WhatsApp Message object, see Messages in the WhatsApp Business Platform Cloud API Reference. */
    message: string;
    /** The API version for the request formatted as v{VersionNumber}. For a list of supported API versions and Amazon Web Services Regions, see Amazon Web Services End User Messaging Social API Service Endpo */
    metaApiVersion: string;
    /** The ID of the phone number used to send the WhatsApp message. If you are sending a media file only the originationPhoneNumberId used to upload the file can be used. Phone number identifiers are format */
    originationPhoneNumberId: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to tag. */
    resourceArn: string;
    /** The tags to add to the resource. */
    tags: Tag[];
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to remove tags from. */
    resourceArn: string;
    /** The keys of the tags to remove from the resource. */
    tagKeys: string[];
}
export interface UpdateWhatsAppMessageTemplateInput {
    /** The ID of the WhatsApp Business Account associated with this template. */
    id: string;
    /** The numeric ID of the template assigned by Meta. */
    metaTemplateId: string;
    /** When true, disables click tracking for call-to-action URL buttons in the template. */
    ctaUrlLinkTrackingOptedOut?: boolean;
    /** The format specification for parameters in the template, this can be either 'named' or 'positional'. */
    parameterFormat?: string;
    /** The new category for the template (for example, UTILITY or MARKETING). */
    templateCategory?: string;
    /** The updated components of the template as a JSON blob (maximum 3000 characters). */
    templateComponents?: string;
}
/** SocialMessaging service binding for Step Functions SDK integrations. */
export declare class SocialMessaging {
    constructor();
    associateWhatsAppBusinessAccount<T>(params: AssociateWhatsAppBusinessAccountInput): Promise<T>;
    createWhatsAppMessageTemplate<T>(params: CreateWhatsAppMessageTemplateInput): Promise<T>;
    createWhatsAppMessageTemplateFromLibrary<T>(params: CreateWhatsAppMessageTemplateFromLibraryInput): Promise<T>;
    createWhatsAppMessageTemplateMedia<T>(params: CreateWhatsAppMessageTemplateMediaInput): Promise<T>;
    deleteWhatsAppMessageMedia<T>(params: DeleteWhatsAppMessageMediaInput): Promise<T>;
    deleteWhatsAppMessageTemplate<T>(params: DeleteWhatsAppMessageTemplateInput): Promise<T>;
    disassociateWhatsAppBusinessAccount<T>(params: DisassociateWhatsAppBusinessAccountInput): Promise<T>;
    getLinkedWhatsAppBusinessAccount<T>(params: GetLinkedWhatsAppBusinessAccountInput): Promise<T>;
    getLinkedWhatsAppBusinessAccountPhoneNumber<T>(params: GetLinkedWhatsAppBusinessAccountPhoneNumberInput): Promise<T>;
    getWhatsAppMessageMedia<T>(params: GetWhatsAppMessageMediaInput): Promise<T>;
    getWhatsAppMessageTemplate<T>(params: GetWhatsAppMessageTemplateInput): Promise<T>;
    listLinkedWhatsAppBusinessAccounts<T>(params: ListLinkedWhatsAppBusinessAccountsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listWhatsAppMessageTemplates<T>(params: ListWhatsAppMessageTemplatesInput): Promise<T>;
    listWhatsAppTemplateLibrary<T>(params: ListWhatsAppTemplateLibraryInput): Promise<T>;
    postWhatsAppMessageMedia<T>(params: PostWhatsAppMessageMediaInput): Promise<T>;
    putWhatsAppBusinessAccountEventDestinations<T>(params: PutWhatsAppBusinessAccountEventDestinationsInput): Promise<T>;
    sendWhatsAppMessage<T>(params: SendWhatsAppMessageInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateWhatsAppMessageTemplate<T>(params: UpdateWhatsAppMessageTemplateInput): Promise<T>;
}
//# sourceMappingURL=SocialMessaging.d.ts.map