export interface RangeOverride {
    /** The start time of when to include objects. */
    Start: number;
    /** The end time of when to include objects. */
    End?: number;
    /** The unit for start and end. */
    Unit: 'DAYS';
}
export interface ConditionOverrides {
    /** The relative time period over which data is included in the aggregation for this override. */
    Range?: RangeOverride;
}
export interface AttributeDetails {
    /** A list of attribute items specified in the mathematical expression. */
    Attributes: any[];
    /** Mathematical expression that is performed on attribute items provided in the attribute list. Each element in the expression should follow the structure of \"{ObjectTypeName.AttributeName}\". */
    Expression: string;
}
export interface Range {
    /** The amount of time of the specified unit. */
    Value?: number;
    /** The unit of time. */
    Unit?: 'DAYS';
    /** A structure letting customers specify a relative time window over which over which data is included in the Calculated Attribute. Use positive numbers to indicate that the endpoint is in the past, and  */
    ValueRange?: any;
    /** An expression specifying the field in your JSON object from which the date should be parsed. The expression should follow the structure of \"{ObjectTypeName.}\". E.g. if your object type is MyType and */
    TimestampSource?: string;
    /** The format the timestamp field in your JSON object is specified. This value should be one of EPOCHMILLI (for Unix epoch timestamps with second/millisecond level precision) or ISO_8601 (following ISO_8 */
    TimestampFormat?: string;
}
export interface Threshold {
    /** The value of the threshold. */
    Value: string;
    /** The operator of the threshold. */
    Operator: 'EQUAL_TO' | 'GREATER_THAN' | 'LESS_THAN' | 'NOT_EQUAL_TO';
}
export interface Conditions {
    /** The relative time period over which data is included in the aggregation. */
    Range?: Range;
    /** The number of profile objects used for the calculated attribute. */
    ObjectCount?: number;
    /** The threshold for the calculated attribute. */
    Threshold?: Threshold;
}
export interface Filter {
    /** Define whether to include or exclude objects for Calculated Attributed calculation that fit the filter groups criteria. */
    Include: 'ALL' | 'ANY' | 'NONE';
    /** Holds the list of Filter groups within the Filter definition. */
    Groups: any[];
}
export interface JobSchedule {
    /** The day when the Identity Resolution Job should run every week. */
    DayOfTheWeek: 'SUNDAY' | 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY';
    /** The time when the Identity Resolution Job should run every week. */
    Time: string;
}
export interface AutoMerging {
    /** The flag that enables the auto-merging of duplicate profiles. */
    Enabled: boolean;
    /** A list of matching attributes that represent matching criteria. If two profiles meet at least one of the requirements in the matching attributes list, they will be merged. */
    Consolidation?: any;
    /** How the auto-merging process should resolve conflicts between different profiles. For example, if Profile A and Profile B have the same FirstName and LastName (and that is the matching criteria), whic */
    ConflictResolution?: any;
    /** A number between 0 and 1 that represents the minimum confidence score required for profiles within a matching group to be merged during the auto-merge process. A higher score means higher similarity r */
    MinAllowedConfidenceScoreForMerging?: number;
}
export interface ExportingConfig {
    /** The S3 location where Identity Resolution Jobs write result files. */
    S3Exporting?: any;
}
export interface MatchingRequest {
    /** The flag that enables the matching process of duplicate profiles. */
    Enabled: boolean;
    /** The day and time when do you want to start the Identity Resolution Job every week. */
    JobSchedule?: JobSchedule;
    /** Configuration information about the auto-merging process. */
    AutoMerging?: AutoMerging;
    /** Configuration information for exporting Identity Resolution results, for example, to an S3 bucket. */
    ExportingConfig?: ExportingConfig;
}
export interface AttributeTypesSelector {
    /** Configures the AttributeMatchingModel, you can either choose ONE_TO_ONE or MANY_TO_MANY. */
    AttributeMatchingModel: 'ONE_TO_ONE' | 'MANY_TO_MANY';
    /** The Address type. You can choose from Address, BusinessAddress, MaillingAddress, and ShippingAddress. You only can use the Address type in the MatchingRule. For example, if you want to match profile b */
    Address?: any[];
    /** The PhoneNumber type. You can choose from PhoneNumber, HomePhoneNumber, and MobilePhoneNumber. You only can use the PhoneNumber type in the MatchingRule. For example, if you want to match a profile ba */
    PhoneNumber?: any[];
    /** The Email type. You can choose from EmailAddress, BusinessEmailAddress and PersonalEmailAddress. You only can use the EmailAddress type in the MatchingRule. For example, if you want to match profile b */
    EmailAddress?: any[];
}
export interface ConflictResolution {
    /** How the auto-merging process should resolve conflicts between different profiles. RECENCY: Uses the data that was most recently updated. SOURCE: Uses the data from a specific source. For example, if a */
    ConflictResolvingModel: 'RECENCY' | 'SOURCE';
    /** The ObjectType name that is used to resolve profile merging conflicts when choosing SOURCE as the ConflictResolvingModel. */
    SourceName?: string;
}
export interface RuleBasedMatchingRequest {
    /** The flag that enables the rule-based matching process of duplicate profiles. */
    Enabled: boolean;
    /** Configures how the rule-based matching process should match profiles. You can have up to 15 MatchingRule in the MatchingRules. */
    MatchingRules?: any[];
    /** MatchingRule */
    MaxAllowedRuleLevelForMerging?: number;
    /** Indicates the maximum allowed rule level. */
    MaxAllowedRuleLevelForMatching?: number;
    /** Configures information about the AttributeTypesSelector where the rule-based identity resolution uses to match profiles. */
    AttributeTypesSelector?: AttributeTypesSelector;
    ConflictResolution?: ConflictResolution;
    ExportingConfig?: ExportingConfig;
}
export interface DataStoreRequest {
    /** Enabled: Set to true to enabled data store for this domain. */
    Enabled?: boolean;
}
export interface EventTriggerCondition {
    /** A list of dimensions to be evaluated for the event. */
    EventTriggerDimensions: any[];
    /** The operator used to combine multiple dimensions. */
    LogicalOperator: 'ANY' | 'ALL' | 'NONE';
}
export interface EventTriggerLimits {
    /** In milliseconds. Specifies that an event will only trigger the destination if it is processed within a certain latency period. */
    EventExpiration?: number;
    /** A list of time periods during which the limits apply. */
    Periods?: any[];
}
export interface AppflowIntegration {
    FlowDefinition: any;
    /** Batches in workflow of type APPFLOW_INTEGRATION. */
    Batches?: any[];
}
export interface IntegrationConfig {
    /** Configuration data for APPFLOW_INTEGRATION workflow type. */
    AppflowIntegration?: AppflowIntegration;
}
export interface Address {
    /** The first line of a customer address. */
    Address1?: string;
    /** The second line of a customer address. */
    Address2?: string;
    /** The third line of a customer address. */
    Address3?: string;
    /** The fourth line of a customer address. */
    Address4?: string;
    /** The city in which a customer lives. */
    City?: string;
    /** The county in which a customer lives. */
    County?: string;
    /** The state in which a customer lives. */
    State?: string;
    /** The province in which a customer lives. */
    Province?: string;
    /** The country in which a customer lives. */
    Country?: string;
    /** The postal code of a customer address. */
    PostalCode?: string;
}
export interface EngagementPreferences {
    /** A list of phone-related contact preferences */
    Phone?: any[];
    /** A list of email-related contact preferences */
    Email?: any[];
}
export interface EventsConfig {
    /** A list of event parameters configurations that specify how different event types should be handled. */
    EventParametersList: any[];
}
export interface RecommenderConfig {
    /** Configuration settings for how the recommender processes and uses events. */
    EventsConfig: EventsConfig;
    /** How often the recommender should retrain its model with new data. */
    TrainingFrequency?: number;
}
export interface SegmentGroup {
    /** Holds the list of groups within the segment definition. */
    Groups?: any[];
    /** Defines whether to include or exclude the profiles that fit the segment criteria. */
    Include?: 'ALL' | 'ANY' | 'NONE';
}
export interface SegmentGroupStructure {
    /** Holds the list of groups within the segment definition. */
    Groups?: any[];
    /** Define whether to include or exclude the profiles that fit the segment criteria. */
    Include?: 'ALL' | 'ANY' | 'NONE';
}
export interface ObjectTypeField {
    /** A field of a ProfileObject. For example: _source.FirstName, where “_source” is a ProfileObjectType of a Zendesk user and “FirstName” is a field in that ObjectType. */
    Source?: string;
    /** The location of the data in the standard ProfileObject model. For example: _profile.Address.PostalCode. */
    Target?: string;
    /** The content type of the field. Used for determining equality when searching. */
    ContentType?: 'STRING' | 'NUMBER' | 'PHONE_NUMBER' | 'EMAIL_ADDRESS' | 'NAME';
}
export interface Consolidation {
    /** A list of matching criteria. */
    MatchingAttributesList: any[][];
}
export interface ObjectFilter {
    /** A searchable identifier of a profile object. The predefined keys you can use to search for _asset include: _assetId, _assetName, and _serialNumber. The predefined keys you can use to search for _case  */
    KeyName: string;
    /** A list of key values. */
    Values: string[];
}
export interface FieldSourceProfileIds {
    /** A unique identifier for the account number field to be merged. */
    AccountNumber?: string;
    /** A unique identifier for the additional information field to be merged. */
    AdditionalInformation?: string;
    /** A unique identifier for the party type field to be merged. */
    PartyType?: string;
    /** A unique identifier for the business name field to be merged. */
    BusinessName?: string;
    /** A unique identifier for the first name field to be merged. */
    FirstName?: string;
    /** A unique identifier for the middle name field to be merged. */
    MiddleName?: string;
    /** A unique identifier for the last name field to be merged. */
    LastName?: string;
    /** A unique identifier for the birthdate field to be merged. */
    BirthDate?: string;
    /** A unique identifier for the gender field to be merged. */
    Gender?: string;
    /** A unique identifier for the phone number field to be merged. */
    PhoneNumber?: string;
    /** A unique identifier for the mobile phone number field to be merged. */
    MobilePhoneNumber?: string;
    /** A unique identifier for the home phone number field to be merged. */
    HomePhoneNumber?: string;
    /** A unique identifier for the business phone number field to be merged. */
    BusinessPhoneNumber?: string;
    /** A unique identifier for the email address field to be merged. */
    EmailAddress?: string;
    /** A unique identifier for the personal email address field to be merged. */
    PersonalEmailAddress?: string;
    /** A unique identifier for the party type field to be merged. */
    BusinessEmailAddress?: string;
    /** A unique identifier for the party type field to be merged. */
    Address?: string;
    /** A unique identifier for the shipping address field to be merged. */
    ShippingAddress?: string;
    /** A unique identifier for the mailing address field to be merged. */
    MailingAddress?: string;
    /** A unique identifier for the billing type field to be merged. */
    BillingAddress?: string;
    /** A unique identifier for the attributes field to be merged. */
    Attributes?: Record<string, string>;
    /** A unique identifier for the profile type field to be merged. */
    ProfileType?: string;
    /** A unique identifier for the engagement preferences field to be merged. */
    EngagementPreferences?: string;
}
export interface DomainObjectTypeField {
    /** The expression that defines how to extract the field value from the source object.> */
    Source: string;
    /** The expression that defines where the field value should be placed in the standard domain object. */
    Target: string;
    /** The content type of the field. */
    ContentType?: 'STRING' | 'NUMBER';
    /** The semantic meaning of the field. */
    FeatureType?: 'TEXTUAL' | 'CATEGORICAL';
}
export interface SourceFlowConfig {
    /** The name of the AppFlow connector profile. This name must be unique for each connector profile in the AWS account. */
    ConnectorProfileName?: string;
    /** The type of connector, such as Salesforce, Marketo, and so on. */
    ConnectorType: 'Salesforce' | 'Marketo' | 'Zendesk' | 'Servicenow' | 'S3';
    /** Defines the configuration for a scheduled incremental data pull. If a valid configuration is provided, the fields specified in the configuration are used when querying for the incremental data pull. */
    IncrementalPullConfig?: any;
    /** Specifies the information that is required to query a particular source connector. */
    SourceConnectorProperties: any;
}
export interface TriggerConfig {
    /** Specifies the type of flow trigger. It can be OnDemand, Scheduled, or Event. */
    TriggerType: 'Scheduled' | 'Event' | 'OnDemand';
    /** Specifies the configuration details of a schedule-triggered flow that you define. Currently, these settings only apply to the Scheduled trigger type. */
    TriggerProperties?: any;
}
export interface FlowDefinition {
    /** A description of the flow you want to create. */
    Description?: string;
    /** The specified name of the flow. Use underscores (_) or hyphens (-) only. Spaces are not allowed. */
    FlowName: string;
    /** The Amazon Resource Name of the AWS Key Management Service (KMS) key you provide for encryption. */
    KmsArn: string;
    /** The configuration that controls how Customer Profiles retrieves data from the source. */
    SourceFlowConfig: SourceFlowConfig;
    /** A list of tasks that Customer Profiles performs while transferring the data in the flow run. */
    Tasks: any[];
    /** The trigger settings that determine how and when the flow runs. */
    TriggerConfig: TriggerConfig;
}
export interface AdditionalSearchKey {
    /** A searchable identifier of a customer profile. */
    KeyName: string;
    /** A list of key values. */
    Values: any[];
}
export interface UpdateAddress {
    /** The first line of a customer address. */
    Address1?: string;
    /** The second line of a customer address. */
    Address2?: string;
    /** The third line of a customer address. */
    Address3?: string;
    /** The fourth line of a customer address. */
    Address4?: string;
    /** The city in which a customer lives. */
    City?: string;
    /** The county in which a customer lives. */
    County?: string;
    /** The state in which a customer lives. */
    State?: string;
    /** The province in which a customer lives. */
    Province?: string;
    /** The country in which a customer lives. */
    Country?: string;
    /** The postal code of a customer address. */
    PostalCode?: string;
}
export interface AddProfileKeyInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** A searchable identifier of a customer profile. The predefined keys you can use include: _account, _profileId, _assetId, _caseId, _orderId, _fullName, _phone, _email, _ctrContactId, _marketoLeadId, _sa */
    KeyName: string;
    /** The unique identifier of a customer profile. */
    ProfileId: string;
    /** A list of key values. */
    Values: string[];
}
export interface BatchGetCalculatedAttributeForProfileInput {
    /** The unique name of the calculated attribute. */
    CalculatedAttributeName: string;
    /** The unique name of the domain. */
    DomainName: string;
    /** List of unique identifiers for customer profiles to retrieve. */
    ProfileIds: string[];
    /** Overrides the condition block within the original calculated attribute definition. */
    ConditionOverrides?: ConditionOverrides;
}
export interface BatchGetProfileInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** List of unique identifiers for customer profiles to retrieve. */
    ProfileIds: string[];
}
export interface CreateCalculatedAttributeDefinitionInput {
    /** Mathematical expression and a list of attribute items specified in that expression. */
    AttributeDetails: AttributeDetails;
    /** The unique name of the calculated attribute. */
    CalculatedAttributeName: string;
    /** The unique name of the domain. */
    DomainName: string;
    /** The aggregation operation to perform for the calculated attribute. */
    Statistic: 'FIRST_OCCURRENCE' | 'LAST_OCCURRENCE' | 'COUNT' | 'SUM' | 'MINIMUM' | 'MAXIMUM' | 'AVERAGE' | 'MAX_OCCURRENCE';
    /** The conditions including range, object count, and threshold for the calculated attribute. */
    Conditions?: Conditions;
    /** The description of the calculated attribute. */
    Description?: string;
    /** The display name of the calculated attribute. */
    DisplayName?: string;
    /** Defines how to filter incoming objects to include part of the Calculated Attribute. */
    Filter?: Filter;
    /** The tags used to organize, track, or control access for this resource. */
    Tags?: Record<string, string>;
    /** Whether historical data ingested before the Calculated Attribute was created should be included in calculations. */
    UseHistoricalData?: boolean;
}
export interface CreateDomainInput {
    /** The default number of days until the data within the domain expires. */
    DefaultExpirationDays: number;
    /** The unique name of the domain. */
    DomainName: string;
    /** Set to true to enabled data store for this domain. */
    DataStore?: DataStoreRequest;
    /** The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications. You must set up a policy on the DeadLetterQueue for the SendMessa */
    DeadLetterQueueUrl?: string;
    /** The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is specified. It is used to encrypt all data before it is placed in permanent or semi-permanent */
    DefaultEncryptionKey?: string;
    /** The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly batch process called Identity Resolution Job. If you do not specify a date and time for */
    Matching?: MatchingRequest;
    /** The process of matching duplicate profiles using the Rule-Based matching. If RuleBasedMatching = true, Amazon Connect Customer Profiles will start to match and merge your profiles according to your co */
    RuleBasedMatching?: RuleBasedMatchingRequest;
    /** The tags used to organize, track, or control access for this resource. */
    Tags?: Record<string, string>;
}
export interface CreateDomainLayoutInput {
    /** The description of the layout */
    Description: string;
    /** The display name of the layout */
    DisplayName: string;
    /** The unique name of the domain. */
    DomainName: string;
    /** A customizable layout that can be used to view data under a Customer Profiles domain. */
    Layout: string;
    /** The unique name of the layout. */
    LayoutDefinitionName: string;
    /** The type of layout that can be used to view data under a Customer Profiles domain. */
    LayoutType: 'PROFILE_EXPLORER';
    /** If set to true for a layout, this layout will be used by default to view data. If set to false, then the layout will not be used by default, but it can be used to view data by explicitly selecting it  */
    IsDefault?: boolean;
    /** The tags used to organize, track, or control access for this resource. */
    Tags?: Record<string, string>;
}
export interface CreateEventStreamInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The name of the event stream. */
    EventStreamName: string;
    /** The StreamARN of the destination to deliver profile events to. For example, arn:aws:kinesis:region:account-id:stream/stream-name */
    Uri: string;
    /** The tags used to organize, track, or control access for this resource. */
    Tags?: Record<string, string>;
}
export interface CreateEventTriggerInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** A list of conditions that determine when an event should trigger the destination. */
    EventTriggerConditions: EventTriggerCondition[];
    /** The unique name of the event trigger. */
    EventTriggerName: string;
    /** The unique name of the object type. */
    ObjectTypeName: string;
    /** The description of the event trigger. */
    Description?: string;
    /** Defines limits controlling whether an event triggers the destination, based on ingestion latency and the number of invocations per profile over specific time periods. */
    EventTriggerLimits?: EventTriggerLimits;
    /** The destination is triggered only for profiles that meet the criteria of a segment definition. */
    SegmentFilter?: string;
    /** An array of key-value pairs to apply to this resource. */
    Tags?: Record<string, string>;
}
export interface CreateIntegrationWorkflowInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** Configuration data for integration workflow. */
    IntegrationConfig: IntegrationConfig;
    /** The name of the profile object type. */
    ObjectTypeName: string;
    /** The Amazon Resource Name (ARN) of the IAM role. Customer Profiles assumes this role to create resources on your behalf as part of workflow execution. */
    RoleArn: string;
    /** The type of workflow. The only supported value is APPFLOW_INTEGRATION. */
    WorkflowType: 'APPFLOW_INTEGRATION';
    /** The tags used to organize, track, or control access for this resource. */
    Tags?: Record<string, string>;
}
export interface CreateProfileInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** An account number that you have assigned to the customer. */
    AccountNumber?: string;
    /** Any additional information relevant to the customer’s profile. */
    AdditionalInformation?: string;
    /** A generic address associated with the customer that is not mailing, shipping, or billing. */
    Address?: Address;
    /** A key value pair of attributes of a customer profile. */
    Attributes?: Record<string, string>;
    /** The customer’s billing address. */
    BillingAddress?: Address;
    /** The customer’s birth date. */
    BirthDate?: string;
    /** The customer’s business email address. */
    BusinessEmailAddress?: string;
    /** The name of the customer’s business. */
    BusinessName?: string;
    /** The customer’s business phone number. */
    BusinessPhoneNumber?: string;
    /** The customer’s email address, which has not been specified as a personal or business address. */
    EmailAddress?: string;
    /** Object that defines the preferred methods of engagement, per channel. */
    EngagementPreferences?: EngagementPreferences;
    /** The customer’s first name. */
    FirstName?: string;
    /** The gender with which the customer identifies. */
    Gender?: 'MALE' | 'FEMALE' | 'UNSPECIFIED';
    /** An alternative to Gender which accepts any string as input. */
    GenderString?: string;
    /** The customer’s home phone number. */
    HomePhoneNumber?: string;
    /** The customer’s last name. */
    LastName?: string;
    /** The customer’s mailing address. */
    MailingAddress?: Address;
    /** The customer’s middle name. */
    MiddleName?: string;
    /** The customer’s mobile phone number. */
    MobilePhoneNumber?: string;
    /** The type of profile used to describe the customer. */
    PartyType?: 'INDIVIDUAL' | 'BUSINESS' | 'OTHER';
    /** An alternative to PartyType which accepts any string as input. */
    PartyTypeString?: string;
    /** The customer’s personal email address. */
    PersonalEmailAddress?: string;
    /** The customer’s phone number, which has not been specified as a mobile, home, or business number. */
    PhoneNumber?: string;
    /** The type of the profile. */
    ProfileType?: 'ACCOUNT_PROFILE' | 'PROFILE';
    /** The customer’s shipping address. */
    ShippingAddress?: Address;
}
export interface CreateRecommenderInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The name of the recommender. */
    RecommenderName: string;
    /** The name of the recommeder recipe. */
    RecommenderRecipeName: 'recommended-for-you' | 'similar-items' | 'frequently-paired-items' | 'popular-items' | 'trending-now';
    /** The description of the domain object type. */
    Description?: string;
    /** The recommender configuration. */
    RecommenderConfig?: RecommenderConfig;
    /** The tags used to organize, track, or control access for this resource. */
    Tags?: Record<string, string>;
}
export interface CreateSegmentDefinitionInput {
    /** The display name of the segment definition. */
    DisplayName: string;
    /** The unique name of the domain. */
    DomainName: string;
    /** The unique name of the segment definition. */
    SegmentDefinitionName: string;
    /** The description of the segment definition. */
    Description?: string;
    /** Specifies the base segments and dimensions for a segment definition along with their respective relationship. */
    SegmentGroups?: SegmentGroup;
    /** The segment SQL query. */
    SegmentSqlQuery?: string;
    /** The tags used to organize, track, or control access for this resource. */
    Tags?: Record<string, string>;
}
export interface CreateSegmentEstimateInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The segment query for calculating a segment estimate. */
    SegmentQuery?: SegmentGroupStructure;
    /** The segment SQL query. */
    SegmentSqlQuery?: string;
}
export interface CreateSegmentSnapshotInput {
    /** The format in which the segment will be exported. */
    DataFormat: 'CSV' | 'JSONL' | 'ORC';
    /** The unique name of the domain. */
    DomainName: string;
    /** The name of the segment definition used in this snapshot request. */
    SegmentDefinitionName: string;
    /** The destination to which the segment will be exported. This field must be provided if the request is not submitted from the Amazon Connect Admin Website. */
    DestinationUri?: string;
    /** The Amazon Resource Name (ARN) of the KMS key used to encrypt the exported segment. */
    EncryptionKey?: string;
    /** The Amazon Resource Name (ARN) of the IAM role that allows Customer Profiles service principal to assume the role for conducting KMS and S3 operations. */
    RoleArn?: string;
}
export interface CreateUploadJobInput {
    /** The unique name of the upload job. Could be a file name to identify the upload job. */
    DisplayName: string;
    /** The unique name of the domain. Domain should be exists for the upload job to be created. */
    DomainName: string;
    /** The mapping between CSV Columns and Profile Object attributes. A map of the name and ObjectType field. */
    Fields: Record<string, ObjectTypeField>;
    /** The unique key columns for de-duping the profiles used to map data to the profile. */
    UniqueKey: string;
    /** The expiry duration for the profiles ingested with the job. If not provided, the system default of 2 weeks is used. */
    DataExpiry?: number;
}
export interface DeleteCalculatedAttributeDefinitionInput {
    /** The unique name of the calculated attribute. */
    CalculatedAttributeName: string;
    /** The unique name of the domain. */
    DomainName: string;
}
export interface DeleteDomainInput {
    /** The unique name of the domain. */
    DomainName: string;
}
export interface DeleteDomainLayoutInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The unique name of the layout. */
    LayoutDefinitionName: string;
}
export interface DeleteDomainObjectTypeInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The unique name of the domain object type. */
    ObjectTypeName: string;
}
export interface DeleteEventStreamInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The name of the event stream */
    EventStreamName: string;
}
export interface DeleteEventTriggerInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The unique name of the event trigger. */
    EventTriggerName: string;
}
export interface DeleteIntegrationInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The URI of the S3 bucket or any other type of data source. */
    Uri: string;
}
export interface DeleteProfileInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The unique identifier of a customer profile. */
    ProfileId: string;
}
export interface DeleteProfileKeyInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** A searchable identifier of a customer profile. */
    KeyName: string;
    /** The unique identifier of a customer profile. */
    ProfileId: string;
    /** A list of key values. */
    Values: string[];
}
export interface DeleteProfileObjectInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The name of the profile object type. */
    ObjectTypeName: string;
    /** The unique identifier of a customer profile. */
    ProfileId: string;
    /** The unique identifier of the profile object generated by the service. */
    ProfileObjectUniqueKey: string;
}
export interface DeleteProfileObjectTypeInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The name of the profile object type. */
    ObjectTypeName: string;
}
export interface DeleteRecommenderInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The recommender name. */
    RecommenderName: string;
}
export interface DeleteSegmentDefinitionInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The unique name of the segment definition. */
    SegmentDefinitionName: string;
}
export interface DeleteWorkflowInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** Unique identifier for the workflow. */
    WorkflowId: string;
}
export interface DetectProfileObjectTypeInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** A string that is serialized from a JSON object. */
    Objects: string[];
}
export interface GetAutoMergingPreviewInput {
    /** How the auto-merging process should resolve conflicts between different profiles. */
    ConflictResolution: ConflictResolution;
    /** A list of matching attributes that represent matching criteria. */
    Consolidation: Consolidation;
    /** The unique name of the domain. */
    DomainName: string;
    /** Minimum confidence score required for profiles within a matching group to be merged during the auto-merge process. */
    MinAllowedConfidenceScoreForMerging?: number;
}
export interface GetCalculatedAttributeDefinitionInput {
    /** The unique name of the calculated attribute. */
    CalculatedAttributeName: string;
    /** The unique name of the domain. */
    DomainName: string;
}
export interface GetCalculatedAttributeForProfileInput {
    /** The unique name of the calculated attribute. */
    CalculatedAttributeName: string;
    /** The unique name of the domain. */
    DomainName: string;
    /** The unique identifier of a customer profile. */
    ProfileId: string;
}
export interface GetDomainInput {
    /** The unique name of the domain. */
    DomainName: string;
}
export interface GetDomainLayoutInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The unique name of the layout. */
    LayoutDefinitionName: string;
}
export interface GetDomainObjectTypeInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The unique name of the domain object type. */
    ObjectTypeName: string;
}
export interface GetEventStreamInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The name of the event stream provided during create operations. */
    EventStreamName: string;
}
export interface GetEventTriggerInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The unique name of the event trigger. */
    EventTriggerName: string;
}
export interface GetIdentityResolutionJobInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The unique identifier of the Identity Resolution Job. */
    JobId: string;
}
export interface GetIntegrationInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The URI of the S3 bucket or any other type of data source. */
    Uri: string;
}
export interface GetMatchesInput {
    /** The unique name of the domain. */
    DomainName: 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 GetObjectTypeAttributeStatisticsInput {
    /** The attribute name. */
    AttributeName: string;
    /** The unique name of the domain. */
    DomainName: string;
    /** The unique name of the domain object type. */
    ObjectTypeName: string;
}
export interface GetProfileHistoryRecordInput {
    /** The unique name of the domain for which to return a profile history record. */
    DomainName: string;
    /** The unique identifier of the profile history record to return. */
    Id: string;
    /** The unique identifier of the profile for which to return a history record. */
    ProfileId: string;
}
export interface GetProfileObjectTypeInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The name of the profile object type. */
    ObjectTypeName: string;
}
export interface GetProfileObjectTypeTemplateInput {
    /** A unique identifier for the object template. */
    TemplateId: string;
}
export interface GetProfileRecommendationsInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The unique identifier of the profile for which to retrieve recommendations. */
    ProfileId: string;
    /** The unique name of the recommender. */
    RecommenderName: string;
    /** The contextual metadata used to provide dynamic runtime information to tailor recommendations. */
    Context?: Record<string, string>;
    /** The maximum number of recommendations to return. The default value is 10. */
    MaxResults?: number;
}
export interface GetRecommenderInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The name of the recommender. */
    RecommenderName: string;
    /** The number of training metrics to retrieve for the recommender. */
    TrainingMetricsCount?: number;
}
export interface GetSegmentDefinitionInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The unique name of the segment definition. */
    SegmentDefinitionName: string;
}
export interface GetSegmentEstimateInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The query Id passed by a previous CreateSegmentEstimate operation. */
    EstimateId: string;
}
export interface GetSegmentMembershipInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The list of profile IDs to query for. */
    ProfileIds: string[];
    /** The Id of the wanted segment. Needs to be a valid, and existing segment Id. */
    SegmentDefinitionName: string;
}
export interface GetSegmentSnapshotInput {
    /** The unique identifier of the domain. */
    DomainName: string;
    /** The unique name of the segment definition. */
    SegmentDefinitionName: string;
    /** The unique identifier of the segment snapshot. */
    SnapshotId: string;
}
export interface GetSimilarProfilesInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** Specify the type of matching to get similar profiles for. */
    MatchType: 'RULE_BASED_MATCHING' | 'ML_BASED_MATCHING';
    /** The string indicating the search key to be used. */
    SearchKey: string;
    /** The string based on SearchKey to be searched for similar profiles. */
    SearchValue: string;
    /** The maximum number of objects returned per page. */
    MaxResults?: number;
    /** The pagination token from the previous GetSimilarProfiles API call. */
    NextToken?: string;
}
export interface GetUploadJobInput {
    /** The unique name of the domain containing the upload job. */
    DomainName: string;
    /** The unique identifier of the upload job to retrieve. */
    JobId: string;
}
export interface GetUploadJobPathInput {
    /** The unique name of the domain containing the upload job. */
    DomainName: string;
    /** The unique identifier of the upload job to retrieve the upload path for. This is generated from the CreateUploadJob API. */
    JobId: string;
}
export interface GetWorkflowInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** Unique identifier for the workflow. */
    WorkflowId: string;
}
export interface GetWorkflowStepsInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** Unique identifier for the workflow. */
    WorkflowId: 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 ListAccountIntegrationsInput {
    /** The URI of the S3 bucket or any other type of data source. */
    Uri: string;
    /** Boolean to indicate if hidden integration should be returned. Defaults to False. */
    IncludeHidden?: boolean;
    /** The maximum number of objects returned per page. */
    MaxResults?: number;
    /** The pagination token from the previous ListAccountIntegrations API call. */
    NextToken?: string;
}
export interface ListCalculatedAttributeDefinitionsInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The maximum number of calculated attribute definitions returned per page. */
    MaxResults?: number;
    /** The pagination token from the previous call to ListCalculatedAttributeDefinitions. */
    NextToken?: string;
}
export interface ListCalculatedAttributesForProfileInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The unique identifier of a customer profile. */
    ProfileId: string;
    /** The maximum number of calculated attributes returned per page. */
    MaxResults?: number;
    /** The pagination token from the previous call to ListCalculatedAttributesForProfile. */
    NextToken?: string;
}
export interface ListDomainLayoutsInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The maximum number of objects returned per page. */
    MaxResults?: number;
    /** Identifies the next page of results to return. */
    NextToken?: string;
}
export interface ListDomainObjectTypesInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The maximum number of domain object types returned per page. */
    MaxResults?: number;
    /** The pagination token from the previous call to ListDomainObjectTypes. */
    NextToken?: string;
}
export interface ListDomainsInput {
    /** The maximum number of objects returned per page. */
    MaxResults?: number;
    /** The pagination token from the previous ListDomain API call. */
    NextToken?: string;
}
export interface ListEventStreamsInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The maximum number of objects returned per page. */
    MaxResults?: number;
    /** Identifies the next page of results to return. */
    NextToken?: string;
}
export interface ListEventTriggersInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The maximum number of results to return per page. */
    MaxResults?: number;
    /** The pagination token to use with ListEventTriggers. */
    NextToken?: string;
}
export interface ListIdentityResolutionJobsInput {
    /** The unique name of the domain. */
    DomainName: 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 ListIntegrationsInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** Boolean to indicate if hidden integration should be returned. Defaults to False. */
    IncludeHidden?: boolean;
    /** The maximum number of objects returned per page. */
    MaxResults?: number;
    /** The pagination token from the previous ListIntegrations API call. */
    NextToken?: string;
}
export interface ListObjectTypeAttributesInput {
    /** The unique identifier of the domain. */
    DomainName: string;
    /** The name of the profile object type. */
    ObjectTypeName: string;
    /** The maximum number of objects returned per page. */
    MaxResults?: number;
    /** The pagination token from the previous call. */
    NextToken?: string;
}
export interface ListObjectTypeAttributeValuesInput {
    /** The attribute name. */
    AttributeName: string;
    /** The unique name of the domain. */
    DomainName: string;
    /** The unique name of the domain object type. */
    ObjectTypeName: string;
    /** The maximum number of objects returned per page. Valid Range: Minimum value of 1. Maximum value of 100. If not provided default as 100. */
    MaxResults?: number;
    /** The pagination token from the previous call. */
    NextToken?: string;
}
export interface ListProfileAttributeValuesInput {
    /** The attribute name. */
    AttributeName: string;
    /** The unique identifier of the domain. */
    DomainName: string;
}
export interface ListProfileHistoryRecordsInput {
    /** The unique name of the domain for which to return profile history records. */
    DomainName: string;
    /** The identifier of the profile to be taken. */
    ProfileId: string;
    /** Applies a filter to include profile history records only with the specified ActionType value in the response. */
    ActionType?: 'ADDED_PROFILE_KEY' | 'DELETED_PROFILE_KEY' | 'CREATED' | 'UPDATED' | 'INGESTED' | 'DELETED_BY_CUSTOMER' | 'EXPIRED' | 'MERGED' | 'DELETED_BY_MERGE';
    /** 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;
    /** Applies a filter to include profile history records only with the specified ObjectTypeName value in the response. */
    ObjectTypeName?: string;
    /** Applies a filter to include profile history records only with the specified PerformedBy value in the response. The PerformedBy value can be the Amazon Resource Name (ARN) of the person or service prin */
    PerformedBy?: string;
}
export interface ListProfileObjectsInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The name of the profile object type. */
    ObjectTypeName: string;
    /** The unique identifier of a customer profile. */
    ProfileId: string;
    /** The maximum number of objects returned per page. */
    MaxResults?: number;
    /** The pagination token from the previous call to ListProfileObjects. */
    NextToken?: string;
    /** Applies a filter to the response to include profile objects with the specified index values. */
    ObjectFilter?: ObjectFilter;
}
export interface ListProfileObjectTypesInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The maximum number of objects returned per page. */
    MaxResults?: number;
    /** Identifies the next page of results to return. */
    NextToken?: string;
}
export interface ListProfileObjectTypeTemplatesInput {
    /** The maximum number of objects returned per page. */
    MaxResults?: number;
    /** The pagination token from the previous ListObjectTypeTemplates API call. */
    NextToken?: string;
}
export interface ListRecommenderRecipesInput {
    /** The maximum number of recommender recipes to return in the response. The default value is 100. */
    MaxResults?: number;
    /** A token received from a previous ListRecommenderRecipes call to retrieve the next page of results. */
    NextToken?: string;
}
export interface ListRecommendersInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The maximum number of recommenders to return in the response. The default value is 100. */
    MaxResults?: number;
    /** A token received from a previous ListRecommenders call to retrieve the next page of results. */
    NextToken?: string;
}
export interface ListRuleBasedMatchesInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The maximum number of MatchIds returned per page. */
    MaxResults?: number;
    /** The pagination token from the previous ListRuleBasedMatches API call. */
    NextToken?: string;
}
export interface ListSegmentDefinitionsInput {
    /** The unique identifier of the domain. */
    DomainName: string;
    /** The maximum number of objects returned per page. */
    MaxResults?: number;
    /** The pagination token from the previous call. */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The ARN of the resource for which you want to view tags. */
    resourceArn: string;
}
export interface ListUploadJobsInput {
    /** The unique name of the domain to list upload jobs for. */
    DomainName: string;
    /** The maximum number of upload jobs to return per page. */
    MaxResults?: number;
    /** The pagination token from the previous call to retrieve the next page of results. */
    NextToken?: string;
}
export interface ListWorkflowsInput {
    /** The unique name of the domain. */
    DomainName: 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;
    /** Retrieve workflows ended after timestamp. */
    QueryEndDate?: string;
    /** Retrieve workflows started after timestamp. */
    QueryStartDate?: string;
    /** Status of workflow execution. */
    Status?: 'NOT_STARTED' | 'IN_PROGRESS' | 'COMPLETE' | 'FAILED' | 'SPLIT' | 'RETRY' | 'CANCELLED';
    /** The type of workflow. The only supported value is APPFLOW_INTEGRATION. */
    WorkflowType?: 'APPFLOW_INTEGRATION';
}
export interface MergeProfilesInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The identifier of the profile to be taken. */
    MainProfileId: string;
    /** The identifier of the profile to be merged into MainProfileId. */
    ProfileIdsToBeMerged: string[];
    /** The identifiers of the fields in the profile that has the information you want to apply to the merge. For example, say you want to merge EmailAddress from Profile1 into MainProfile. This would be the  */
    FieldSourceProfileIds?: FieldSourceProfileIds;
}
export interface PutDomainObjectTypeInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** A map of field names to their corresponding domain object type field definitions. */
    Fields: Record<string, DomainObjectTypeField>;
    /** The unique name of the domain object type. */
    ObjectTypeName: string;
    /** The description of the domain object type. */
    Description?: string;
    /** The customer provided KMS key used to encrypt this type of domain object. */
    EncryptionKey?: string;
    /** The tags used to organize, track, or control access for this resource. */
    Tags?: Record<string, string>;
}
export interface PutIntegrationInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** A list of unique names for active event triggers associated with the integration. */
    EventTriggerNames?: string[];
    /** The configuration that controls how Customer Profiles retrieves data from the source. */
    FlowDefinition?: FlowDefinition;
    /** The name of the profile object type. */
    ObjectTypeName?: string;
    /** A map in which each key is an event type from an external application such as Segment or Shopify, and each value is an ObjectTypeName (template) used to ingest the event. It supports the following eve */
    ObjectTypeNames?: Record<string, string>;
    /** The Amazon Resource Name (ARN) of the IAM role. The Integration uses this role to make Customer Profiles requests on your behalf. */
    RoleArn?: string;
    /** Specifies whether the integration applies to profile level data (associated with profiles) or domain level data (not associated with any specific profile). The default value is PROFILE. */
    Scope?: 'PROFILE' | 'DOMAIN';
    /** The tags used to organize, track, or control access for this resource. */
    Tags?: Record<string, string>;
    /** The URI of the S3 bucket or any other type of data source. */
    Uri?: string;
}
export interface PutProfileObjectInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** A string that is serialized from a JSON object. */
    Object: string;
    /** The name of the profile object type. */
    ObjectTypeName: string;
}
export interface PutProfileObjectTypeInput {
    /** Description of the profile object type. */
    Description: string;
    /** The unique name of the domain. */
    DomainName: string;
    /** The name of the profile object type. */
    ObjectTypeName: string;
    /** Indicates whether a profile should be created when data is received if one doesn’t exist for an object of this type. The default is FALSE. If the AllowProfileCreation flag is set to FALSE, then the se */
    AllowProfileCreation?: boolean;
    /** The customer-provided key to encrypt the profile object that will be created in this profile object type. */
    EncryptionKey?: string;
    /** The number of days until the data in the object expires. */
    ExpirationDays?: number;
    /** A map of the name and ObjectType field. */
    Fields?: Record<string, ObjectTypeField>;
    /** A list of unique keys that can be used to map data to the profile. */
    Keys?: Record<string, any[]>;
    /** The amount of profile object max count assigned to the object type */
    MaxProfileObjectCount?: number;
    /** The format of your sourceLastUpdatedTimestamp that was previously set up. */
    SourceLastUpdatedTimestampFormat?: string;
    /** The tags used to organize, track, or control access for this resource. */
    Tags?: Record<string, string>;
    /** A unique identifier for the object template. For some attributes in the request, the service will use the default value from the object template when TemplateId is present. If these attributes are pre */
    TemplateId?: string;
}
export interface SearchProfilesInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** A searchable identifier of a customer profile. The predefined keys you can use to search include: _account, _profileId, _assetId, _caseId, _orderId, _fullName, _phone, _email, _ctrContactId, _marketoL */
    KeyName: string;
    /** A list of key values. */
    Values: string[];
    /** A list of AdditionalSearchKey objects that are each searchable identifiers of a profile. Each AdditionalSearchKey object contains a KeyName and a list of Values associated with that specific key (i.e. */
    AdditionalSearchKeys?: AdditionalSearchKey[];
    /** Relationship between all specified search keys that will be used to search for profiles. This includes the required KeyName and Values parameters as well as any key-value(s) pairs specified in the Add */
    LogicalOperator?: 'AND' | 'OR';
    /** The maximum number of objects returned per page. The default is 20 if this parameter is not included in the request. */
    MaxResults?: number;
    /** The pagination token from the previous SearchProfiles API call. */
    NextToken?: string;
}
export interface StartRecommenderInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The name of the recommender to start. */
    RecommenderName: string;
}
export interface StartUploadJobInput {
    /** The unique name of the domain containing the upload job to start. */
    DomainName: string;
    /** The unique identifier of the upload job to start. */
    JobId: string;
}
export interface StopRecommenderInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The name of the recommender to stop. */
    RecommenderName: string;
}
export interface StopUploadJobInput {
    /** The unique name of the domain containing the upload job to stop. */
    DomainName: string;
    /** The unique identifier of the upload job to stop. */
    JobId: string;
}
export interface TagResourceInput {
    /** The ARN of the resource that you're adding tags to. */
    resourceArn: string;
    /** The tags used to organize, track, or control access for this resource. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The ARN of the resource from which you are removing tags. */
    resourceArn: string;
    /** The list of tag keys to remove from the resource. */
    tagKeys: string[];
}
export interface UpdateCalculatedAttributeDefinitionInput {
    /** The unique name of the calculated attribute. */
    CalculatedAttributeName: string;
    /** The unique name of the domain. */
    DomainName: string;
    /** The conditions including range, object count, and threshold for the calculated attribute. */
    Conditions?: Conditions;
    /** The description of the calculated attribute. */
    Description?: string;
    /** The display name of the calculated attribute. */
    DisplayName?: string;
}
export interface UpdateDomainInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** Set to true to enabled data store for this domain. */
    DataStore?: DataStoreRequest;
    /** The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications. If specified as an empty string, it will clear any existing value */
    DeadLetterQueueUrl?: string;
    /** The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is specified. It is used to encrypt all data before it is placed in permanent or semi-permanent */
    DefaultEncryptionKey?: string;
    /** The default number of days until the data within the domain expires. */
    DefaultExpirationDays?: number;
    /** The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly batch process called Identity Resolution Job. If you do not specify a date and time for */
    Matching?: MatchingRequest;
    /** The process of matching duplicate profiles using the rule-Based matching. If RuleBasedMatching = true, Amazon Connect Customer Profiles will start to match and merge your profiles according to your co */
    RuleBasedMatching?: RuleBasedMatchingRequest;
    /** The tags used to organize, track, or control access for this resource. */
    Tags?: Record<string, string>;
}
export interface UpdateDomainLayoutInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The unique name of the layout. */
    LayoutDefinitionName: string;
    /** The description of the layout */
    Description?: string;
    /** The display name of the layout */
    DisplayName?: string;
    /** If set to true for a layout, this layout will be used by default to view data. If set to false, then the layout will not be used by default, but it can be used to view data by explicitly selecting it  */
    IsDefault?: boolean;
    /** A customizable layout that can be used to view data under a Customer Profiles domain. */
    Layout?: string;
    /** The type of layout that can be used to view data under a Customer Profiles domain. */
    LayoutType?: 'PROFILE_EXPLORER';
}
export interface UpdateEventTriggerInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The unique name of the event trigger. */
    EventTriggerName: string;
    /** The description of the event trigger. */
    Description?: string;
    /** A list of conditions that determine when an event should trigger the destination. */
    EventTriggerConditions?: EventTriggerCondition[];
    /** Defines limits controlling whether an event triggers the destination, based on ingestion latency and the number of invocations per profile over specific time periods. */
    EventTriggerLimits?: EventTriggerLimits;
    /** The unique name of the object type. */
    ObjectTypeName?: string;
    /** The destination is triggered only for profiles that meet the criteria of a segment definition. */
    SegmentFilter?: string;
}
export interface UpdateProfileInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The unique identifier of a customer profile. */
    ProfileId: string;
    /** An account number that you have assigned to the customer. */
    AccountNumber?: string;
    /** Any additional information relevant to the customer’s profile. */
    AdditionalInformation?: string;
    /** A generic address associated with the customer that is not mailing, shipping, or billing. */
    Address?: UpdateAddress;
    /** A key value pair of attributes of a customer profile. */
    Attributes?: Record<string, string>;
    /** The customer’s billing address. */
    BillingAddress?: UpdateAddress;
    /** The customer’s birth date. */
    BirthDate?: string;
    /** The customer’s business email address. */
    BusinessEmailAddress?: string;
    /** The name of the customer’s business. */
    BusinessName?: string;
    /** The customer’s business phone number. */
    BusinessPhoneNumber?: string;
    /** The customer’s email address, which has not been specified as a personal or business address. */
    EmailAddress?: string;
    /** Object that defines users preferred methods of engagement. */
    EngagementPreferences?: EngagementPreferences;
    /** The customer’s first name. */
    FirstName?: string;
    /** The gender with which the customer identifies. */
    Gender?: 'MALE' | 'FEMALE' | 'UNSPECIFIED';
    /** An alternative to Gender which accepts any string as input. */
    GenderString?: string;
    /** The customer’s home phone number. */
    HomePhoneNumber?: string;
    /** The customer’s last name. */
    LastName?: string;
    /** The customer’s mailing address. */
    MailingAddress?: UpdateAddress;
    /** The customer’s middle name. */
    MiddleName?: string;
    /** The customer’s mobile phone number. */
    MobilePhoneNumber?: string;
    /** The type of profile used to describe the customer. */
    PartyType?: 'INDIVIDUAL' | 'BUSINESS' | 'OTHER';
    /** An alternative to PartyType which accepts any string as input. */
    PartyTypeString?: string;
    /** The customer’s personal email address. */
    PersonalEmailAddress?: string;
    /** The customer’s phone number, which has not been specified as a mobile, home, or business number. */
    PhoneNumber?: string;
    /** Determines the type of the profile. */
    ProfileType?: 'ACCOUNT_PROFILE' | 'PROFILE';
    /** The customer’s shipping address. */
    ShippingAddress?: UpdateAddress;
}
export interface UpdateRecommenderInput {
    /** The unique name of the domain. */
    DomainName: string;
    /** The name of the recommender to update. */
    RecommenderName: string;
    /** The new description to assign to the recommender. */
    Description?: string;
    /** The new configuration settings to apply to the recommender, including updated parameters and settings that define its behavior. */
    RecommenderConfig?: RecommenderConfig;
}
/** Customer Profiles service binding for Step Functions SDK integrations. */
export declare class CustomerProfiles {
    constructor();
    addProfileKey<T>(params: AddProfileKeyInput): Promise<T>;
    batchGetCalculatedAttributeForProfile<T>(params: BatchGetCalculatedAttributeForProfileInput): Promise<T>;
    batchGetProfile<T>(params: BatchGetProfileInput): Promise<T>;
    createCalculatedAttributeDefinition<T>(params: CreateCalculatedAttributeDefinitionInput): Promise<T>;
    createDomain<T>(params: CreateDomainInput): Promise<T>;
    createDomainLayout<T>(params: CreateDomainLayoutInput): Promise<T>;
    createEventStream<T>(params: CreateEventStreamInput): Promise<T>;
    createEventTrigger<T>(params: CreateEventTriggerInput): Promise<T>;
    createIntegrationWorkflow<T>(params: CreateIntegrationWorkflowInput): Promise<T>;
    createProfile<T>(params: CreateProfileInput): Promise<T>;
    createRecommender<T>(params: CreateRecommenderInput): Promise<T>;
    createSegmentDefinition<T>(params: CreateSegmentDefinitionInput): Promise<T>;
    createSegmentEstimate<T>(params: CreateSegmentEstimateInput): Promise<T>;
    createSegmentSnapshot<T>(params: CreateSegmentSnapshotInput): Promise<T>;
    createUploadJob<T>(params: CreateUploadJobInput): Promise<T>;
    deleteCalculatedAttributeDefinition<T>(params: DeleteCalculatedAttributeDefinitionInput): Promise<T>;
    deleteDomain<T>(params: DeleteDomainInput): Promise<T>;
    deleteDomainLayout<T>(params: DeleteDomainLayoutInput): Promise<T>;
    deleteDomainObjectType<T>(params: DeleteDomainObjectTypeInput): Promise<T>;
    deleteEventStream<T>(params: DeleteEventStreamInput): Promise<T>;
    deleteEventTrigger<T>(params: DeleteEventTriggerInput): Promise<T>;
    deleteIntegration<T>(params: DeleteIntegrationInput): Promise<T>;
    deleteProfile<T>(params: DeleteProfileInput): Promise<T>;
    deleteProfileKey<T>(params: DeleteProfileKeyInput): Promise<T>;
    deleteProfileObject<T>(params: DeleteProfileObjectInput): Promise<T>;
    deleteProfileObjectType<T>(params: DeleteProfileObjectTypeInput): Promise<T>;
    deleteRecommender<T>(params: DeleteRecommenderInput): Promise<T>;
    deleteSegmentDefinition<T>(params: DeleteSegmentDefinitionInput): Promise<T>;
    deleteWorkflow<T>(params: DeleteWorkflowInput): Promise<T>;
    detectProfileObjectType<T>(params: DetectProfileObjectTypeInput): Promise<T>;
    getAutoMergingPreview<T>(params: GetAutoMergingPreviewInput): Promise<T>;
    getCalculatedAttributeDefinition<T>(params: GetCalculatedAttributeDefinitionInput): Promise<T>;
    getCalculatedAttributeForProfile<T>(params: GetCalculatedAttributeForProfileInput): Promise<T>;
    getDomain<T>(params: GetDomainInput): Promise<T>;
    getDomainLayout<T>(params: GetDomainLayoutInput): Promise<T>;
    getDomainObjectType<T>(params: GetDomainObjectTypeInput): Promise<T>;
    getEventStream<T>(params: GetEventStreamInput): Promise<T>;
    getEventTrigger<T>(params: GetEventTriggerInput): Promise<T>;
    getIdentityResolutionJob<T>(params: GetIdentityResolutionJobInput): Promise<T>;
    getIntegration<T>(params: GetIntegrationInput): Promise<T>;
    getMatches<T>(params: GetMatchesInput): Promise<T>;
    getObjectTypeAttributeStatistics<T>(params: GetObjectTypeAttributeStatisticsInput): Promise<T>;
    getProfileHistoryRecord<T>(params: GetProfileHistoryRecordInput): Promise<T>;
    getProfileObjectType<T>(params: GetProfileObjectTypeInput): Promise<T>;
    getProfileObjectTypeTemplate<T>(params: GetProfileObjectTypeTemplateInput): Promise<T>;
    getProfileRecommendations<T>(params: GetProfileRecommendationsInput): Promise<T>;
    getRecommender<T>(params: GetRecommenderInput): Promise<T>;
    getSegmentDefinition<T>(params: GetSegmentDefinitionInput): Promise<T>;
    getSegmentEstimate<T>(params: GetSegmentEstimateInput): Promise<T>;
    getSegmentMembership<T>(params: GetSegmentMembershipInput): Promise<T>;
    getSegmentSnapshot<T>(params: GetSegmentSnapshotInput): Promise<T>;
    getSimilarProfiles<T>(params: GetSimilarProfilesInput): Promise<T>;
    getUploadJob<T>(params: GetUploadJobInput): Promise<T>;
    getUploadJobPath<T>(params: GetUploadJobPathInput): Promise<T>;
    getWorkflow<T>(params: GetWorkflowInput): Promise<T>;
    getWorkflowSteps<T>(params: GetWorkflowStepsInput): Promise<T>;
    listAccountIntegrations<T>(params: ListAccountIntegrationsInput): Promise<T>;
    listCalculatedAttributeDefinitions<T>(params: ListCalculatedAttributeDefinitionsInput): Promise<T>;
    listCalculatedAttributesForProfile<T>(params: ListCalculatedAttributesForProfileInput): Promise<T>;
    listDomainLayouts<T>(params: ListDomainLayoutsInput): Promise<T>;
    listDomainObjectTypes<T>(params: ListDomainObjectTypesInput): Promise<T>;
    listDomains<T>(params: ListDomainsInput): Promise<T>;
    listEventStreams<T>(params: ListEventStreamsInput): Promise<T>;
    listEventTriggers<T>(params: ListEventTriggersInput): Promise<T>;
    listIdentityResolutionJobs<T>(params: ListIdentityResolutionJobsInput): Promise<T>;
    listIntegrations<T>(params: ListIntegrationsInput): Promise<T>;
    listObjectTypeAttributes<T>(params: ListObjectTypeAttributesInput): Promise<T>;
    listObjectTypeAttributeValues<T>(params: ListObjectTypeAttributeValuesInput): Promise<T>;
    listProfileAttributeValues<T>(params: ListProfileAttributeValuesInput): Promise<T>;
    listProfileHistoryRecords<T>(params: ListProfileHistoryRecordsInput): Promise<T>;
    listProfileObjects<T>(params: ListProfileObjectsInput): Promise<T>;
    listProfileObjectTypes<T>(params: ListProfileObjectTypesInput): Promise<T>;
    listProfileObjectTypeTemplates<T>(params: ListProfileObjectTypeTemplatesInput): Promise<T>;
    listRecommenderRecipes<T>(params: ListRecommenderRecipesInput): Promise<T>;
    listRecommenders<T>(params: ListRecommendersInput): Promise<T>;
    listRuleBasedMatches<T>(params: ListRuleBasedMatchesInput): Promise<T>;
    listSegmentDefinitions<T>(params: ListSegmentDefinitionsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listUploadJobs<T>(params: ListUploadJobsInput): Promise<T>;
    listWorkflows<T>(params: ListWorkflowsInput): Promise<T>;
    mergeProfiles<T>(params: MergeProfilesInput): Promise<T>;
    putDomainObjectType<T>(params: PutDomainObjectTypeInput): Promise<T>;
    putIntegration<T>(params: PutIntegrationInput): Promise<T>;
    putProfileObject<T>(params: PutProfileObjectInput): Promise<T>;
    putProfileObjectType<T>(params: PutProfileObjectTypeInput): Promise<T>;
    searchProfiles<T>(params: SearchProfilesInput): Promise<T>;
    startRecommender<T>(params: StartRecommenderInput): Promise<T>;
    startUploadJob<T>(params: StartUploadJobInput): Promise<T>;
    stopRecommender<T>(params: StopRecommenderInput): Promise<T>;
    stopUploadJob<T>(params: StopUploadJobInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateCalculatedAttributeDefinition<T>(params: UpdateCalculatedAttributeDefinitionInput): Promise<T>;
    updateDomain<T>(params: UpdateDomainInput): Promise<T>;
    updateDomainLayout<T>(params: UpdateDomainLayoutInput): Promise<T>;
    updateEventTrigger<T>(params: UpdateEventTriggerInput): Promise<T>;
    updateProfile<T>(params: UpdateProfileInput): Promise<T>;
    updateRecommender<T>(params: UpdateRecommenderInput): Promise<T>;
}
//# sourceMappingURL=CustomerProfiles.d.ts.map