export interface ExternalUrlConfig {
    /** The URL to access the application. */
    AccessUrl: string;
    /** Additional URLs to allow list if different than the access URL. */
    ApprovedOrigins?: any[];
}
export interface ApplicationSourceConfig {
    /** The external URL source for the application. */
    ExternalUrlConfig?: ExternalUrlConfig;
}
export interface Subscription {
    /** The name of the subscription. */
    Event: string;
    /** The description of the subscription. */
    Description?: string;
}
export interface Publication {
    /** The name of the publication. */
    Event: string;
    /** The JSON schema of the publication event. */
    Schema: string;
    /** The description of the publication. */
    Description?: string;
}
export interface ContactHandling {
    /** Indicates whether the application refreshes for each contact or refreshes only with each new browser session. */
    Scope?: 'CROSS_CONTACTS' | 'PER_CONTACT';
}
export interface ApplicationConfig {
    /** The contact handling configuration for the application. */
    ContactHandling?: ContactHandling;
}
export interface IframeConfig {
    /** The list of features that are allowed in the iframe. */
    Allow?: string[];
    /** The list of sandbox attributes for the iframe. */
    Sandbox?: string[];
}
export interface ScheduleConfiguration {
    /** The start date for objects to import in the first flow run as an Unix/epoch timestamp in milliseconds or in ISO-8601 format. */
    FirstExecutionFrom?: string;
    /** The name of the object to pull from the data source. */
    Object?: string;
    /** How often the data should be pulled from data source. */
    ScheduleExpression: string;
}
export interface FileConfiguration {
    /** Identifiers for the source folders to pull all files from recursively. */
    Folders: string[];
    /** Restrictions for what files should be pulled from the source. */
    Filters?: Record<string, any[]>;
}
export interface OnDemandConfiguration {
    /** The start time for data pull from the source as an Unix/epoch string in milliseconds */
    StartTime: string;
    /** The end time for data pull from the source as an Unix/epoch string in milliseconds */
    EndTime?: string;
}
export interface ExecutionConfiguration {
    /** The mode for data import/export execution. */
    ExecutionMode: 'ON_DEMAND' | 'SCHEDULED';
    OnDemandConfiguration?: OnDemandConfiguration;
    ScheduleConfiguration?: ScheduleConfiguration;
}
export interface EventFilter {
    /** The source of the events. */
    Source: string;
}
export interface CreateApplicationInput {
    /** The configuration for where the application should be loaded from. */
    ApplicationSourceConfig: ApplicationSourceConfig;
    /** The name of the application. */
    Name: string;
    /** The namespace of the application. */
    Namespace: string;
    /** The configuration settings for the application. */
    ApplicationConfig?: ApplicationConfig;
    /** The type of application. */
    ApplicationType?: 'STANDARD' | 'SERVICE' | 'MCP_SERVER';
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency */
    ClientToken?: string;
    /** The description of the application. */
    Description?: string;
    /** The iframe configuration for the application. */
    IframeConfig?: IframeConfig;
    /** The maximum time in milliseconds allowed to establish a connection with the workspace. */
    InitializationTimeout?: number;
    /** Indicates whether the application is a service. */
    IsService?: boolean;
    /** The configuration of events or requests that the application has access to. */
    Permissions?: string[];
    /** The events that the application publishes. */
    Publications?: Publication[];
    /** The events that the application subscribes. */
    Subscriptions?: Subscription[];
    /** The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. */
    Tags?: Record<string, string>;
}
export interface CreateDataIntegrationInput {
    /** The KMS key ARN for the DataIntegration. */
    KmsKey: string;
    /** The name of the DataIntegration. */
    Name: string;
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency */
    ClientToken?: string;
    /** A description of the DataIntegration. */
    Description?: string;
    /** The configuration for what files should be pulled from the source. */
    FileConfiguration?: FileConfiguration;
    /** The configuration for what data should be pulled from the source. */
    ObjectConfiguration?: Record<string, Record<string, any[]>>;
    /** The name of the data and how often it should be pulled from the source. */
    ScheduleConfig?: ScheduleConfiguration;
    /** The URI of the data source. */
    SourceURI?: string;
    /** The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. */
    Tags?: Record<string, string>;
}
export interface CreateDataIntegrationAssociationInput {
    /** A unique identifier for the DataIntegration. */
    DataIntegrationIdentifier: string;
    /** The mapping of metadata to be extracted from the data. */
    ClientAssociationMetadata?: Record<string, string>;
    /** The identifier for the client that is associated with the DataIntegration association. */
    ClientId?: string;
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency */
    ClientToken?: string;
    /** The URI of the data destination. */
    DestinationURI?: string;
    /** The configuration for how the files should be pulled from the source. */
    ExecutionConfiguration?: ExecutionConfiguration;
    ObjectConfiguration?: Record<string, Record<string, any[]>>;
}
export interface CreateEventIntegrationInput {
    /** The EventBridge bus. */
    EventBridgeBus: string;
    /** The event filter. */
    EventFilter: EventFilter;
    /** The name of the event integration. */
    Name: string;
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency */
    ClientToken?: string;
    /** The description of the event integration. */
    Description?: string;
    /** The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. */
    Tags?: Record<string, string>;
}
export interface DeleteApplicationInput {
    /** The Amazon Resource Name (ARN) of the Application. */
    Arn: string;
}
export interface DeleteDataIntegrationInput {
    /** A unique identifier for the DataIntegration. */
    DataIntegrationIdentifier: string;
}
export interface DeleteEventIntegrationInput {
    /** The name of the event integration. */
    Name: string;
}
export interface GetApplicationInput {
    /** The Amazon Resource Name (ARN) of the Application. */
    Arn: string;
}
export interface GetDataIntegrationInput {
    /** A unique identifier. */
    Identifier: string;
}
export interface GetEventIntegrationInput {
    /** The name of the event integration. */
    Name: string;
}
export interface ListApplicationAssociationsInput {
    /** A unique identifier for the Application. */
    ApplicationId: string;
    /** The maximum number of results to return per page. */
    MaxResults?: number;
    /** The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. */
    NextToken?: string;
}
export interface ListApplicationsInput {
    /** The type of application. */
    ApplicationType?: 'STANDARD' | 'SERVICE' | 'MCP_SERVER';
    /** The maximum number of results to return per page. */
    MaxResults?: number;
    /** The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. */
    NextToken?: string;
}
export interface ListDataIntegrationAssociationsInput {
    /** A unique identifier for the DataIntegration. */
    DataIntegrationIdentifier: string;
    /** The maximum number of results to return per page. */
    MaxResults?: number;
    /** The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. */
    NextToken?: string;
}
export interface ListDataIntegrationsInput {
    /** The maximum number of results to return per page. */
    MaxResults?: number;
    /** The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. */
    NextToken?: string;
}
export interface ListEventIntegrationAssociationsInput {
    /** The name of the event integration. */
    EventIntegrationName: string;
    /** The maximum number of results to return per page. */
    MaxResults?: number;
    /** The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. */
    NextToken?: string;
}
export interface ListEventIntegrationsInput {
    /** The maximum number of results to return per page. */
    MaxResults?: number;
    /** The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    resourceArn: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    resourceArn: string;
    /** The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    resourceArn: string;
    /** The tag keys. */
    tagKeys: string[];
}
export interface UpdateApplicationInput {
    /** The Amazon Resource Name (ARN) of the Application. */
    Arn: string;
    /** The configuration settings for the application. */
    ApplicationConfig?: ApplicationConfig;
    /** The configuration for where the application should be loaded from. */
    ApplicationSourceConfig?: ApplicationSourceConfig;
    /** The type of application. */
    ApplicationType?: 'STANDARD' | 'SERVICE' | 'MCP_SERVER';
    /** The description of the application. */
    Description?: string;
    /** The iframe configuration for the application. */
    IframeConfig?: IframeConfig;
    /** The maximum time in milliseconds allowed to establish a connection with the workspace. */
    InitializationTimeout?: number;
    /** Indicates whether the application is a service. */
    IsService?: boolean;
    /** The name of the application. */
    Name?: string;
    /** The configuration of events or requests that the application has access to. */
    Permissions?: string[];
    /** The events that the application publishes. */
    Publications?: Publication[];
    /** The events that the application subscribes. */
    Subscriptions?: Subscription[];
}
export interface UpdateDataIntegrationInput {
    /** A unique identifier for the DataIntegration. */
    Identifier: string;
    /** A description of the DataIntegration. */
    Description?: string;
    /** The name of the DataIntegration. */
    Name?: string;
}
export interface UpdateDataIntegrationAssociationInput {
    /** A unique identifier. of the DataIntegrationAssociation resource */
    DataIntegrationAssociationIdentifier: string;
    /** A unique identifier for the DataIntegration. */
    DataIntegrationIdentifier: string;
    /** The configuration for how the files should be pulled from the source. */
    ExecutionConfiguration: ExecutionConfiguration;
}
export interface UpdateEventIntegrationInput {
    /** The name of the event integration. */
    Name: string;
    /** The description of the event integration. */
    Description?: string;
}
/** AppIntegrations service binding for Step Functions SDK integrations. */
export declare class AppIntegrations {
    constructor();
    createApplication<T>(params: CreateApplicationInput): Promise<T>;
    createDataIntegration<T>(params: CreateDataIntegrationInput): Promise<T>;
    createDataIntegrationAssociation<T>(params: CreateDataIntegrationAssociationInput): Promise<T>;
    createEventIntegration<T>(params: CreateEventIntegrationInput): Promise<T>;
    deleteApplication<T>(params: DeleteApplicationInput): Promise<T>;
    deleteDataIntegration<T>(params: DeleteDataIntegrationInput): Promise<T>;
    deleteEventIntegration<T>(params: DeleteEventIntegrationInput): Promise<T>;
    getApplication<T>(params: GetApplicationInput): Promise<T>;
    getDataIntegration<T>(params: GetDataIntegrationInput): Promise<T>;
    getEventIntegration<T>(params: GetEventIntegrationInput): Promise<T>;
    listApplicationAssociations<T>(params: ListApplicationAssociationsInput): Promise<T>;
    listApplications<T>(params: ListApplicationsInput): Promise<T>;
    listDataIntegrationAssociations<T>(params: ListDataIntegrationAssociationsInput): Promise<T>;
    listDataIntegrations<T>(params: ListDataIntegrationsInput): Promise<T>;
    listEventIntegrationAssociations<T>(params: ListEventIntegrationAssociationsInput): Promise<T>;
    listEventIntegrations<T>(params: ListEventIntegrationsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateApplication<T>(params: UpdateApplicationInput): Promise<T>;
    updateDataIntegration<T>(params: UpdateDataIntegrationInput): Promise<T>;
    updateDataIntegrationAssociation<T>(params: UpdateDataIntegrationAssociationInput): Promise<T>;
    updateEventIntegration<T>(params: UpdateEventIntegrationInput): Promise<T>;
}
//# sourceMappingURL=AppIntegrations.d.ts.map