export interface CaseRuleIdentifier {
    /** Unique identifier of a case rule. */
    id: string;
}
export interface FieldIdentifier {
    /** Unique identifier of a field. */
    id: string;
}
export interface FieldOption {
    /** FieldOptionName has max length 100 and disallows trailing spaces. */
    name: string;
    /** FieldOptionValue has max length 100 and must be alphanumeric with hyphens and underscores. */
    value: string;
    /** Describes whether the FieldOption is active (displayed) or inactive. */
    active: boolean;
}
export interface FieldValue {
    /** Unique identifier of a field. */
    id: string;
    /** Union of potential field value types. */
    value: any;
}
export interface RequiredCaseRule {
    /** The value of the rule (that is, whether the field is required) should none of the conditions evaluate to true. */
    defaultValue: boolean;
    /** List of conditions for the required rule; the first condition to evaluate to true dictates the value of the rule. */
    conditions: any[];
}
export interface FieldOptionsCaseRule {
    /** The identifier of the parent field that controls options. */
    parentFieldId?: string;
    /** The identifier of the child field whose options are controlled. */
    childFieldId?: string;
    /** A mapping between a parent field option value and child field option values. */
    parentChildFieldOptionsMappings: any[];
}
export interface HiddenCaseRule {
    /** Whether the field is hidden when no conditions match. */
    defaultValue: boolean;
    /** A list of conditions that determine field visibility. */
    conditions: any[];
}
export interface TextAttributes {
    /** Attribute that defines rendering component and validation. */
    isMultiline: boolean;
}
export interface BasicLayout {
    /** This represents sections in a panel of the page layout. */
    topPanel?: any;
    /** This represents sections in a tab of the page layout. */
    moreInfo?: any;
}
export interface Contact {
    /** A unique identifier of a contact in Amazon Connect. */
    contactArn: string;
}
export interface CommentContent {
    /** Text in the body of a Comment on a case. */
    body: string;
    /** Type of the text in the box of a Comment on a case. */
    contentType: 'Text/Plain';
}
export interface FileContent {
    /** The Amazon Resource Name (ARN) of a File in Amazon Connect. */
    fileArn: string;
}
export interface ConnectCaseInputContent {
    /** A unique identifier of the case. */
    caseId: string;
}
export interface CustomInputContent {
    /** List of field values for the Custom related item. */
    fields: any[];
}
export interface LayoutConfiguration {
    /** Unique identifier of a layout. */
    defaultLayout?: string;
}
export interface RequiredField {
    /** Unique identifier of a field. */
    fieldId: string;
}
export interface TemplateRule {
    /** Unique identifier of a case rule. */
    caseRuleId: string;
    /** Unique identifier of a field. */
    fieldId?: string;
}
export interface TagPropagationConfiguration {
    /** Supported resource types for tag propagation. Determines which resources will receive automatically propagated tags. */
    resourceType: 'Cases';
    /** The tags that will be applied to the created resource. */
    tagMap: Record<string, any>;
}
export interface EventIncludedData {
    /** Details of what case data is published through the case event stream. */
    caseData?: any;
    /** Details of what related item data is published through the case event stream. */
    relatedItemData?: any;
}
export interface EventBridgeConfiguration {
    /** Indicates whether the to broadcast case event data to the customer. */
    enabled: boolean;
    /** Details of what case and related item data is published through the case event stream. */
    includedData?: EventIncludedData;
}
export interface SearchAllRelatedItemsSort {
    /** Whether related items should be sorted in ascending or descending order. */
    sortProperty: 'AssociationTime' | 'CaseId';
    /** Whether related items should be sorted by association time or case ID. */
    sortOrder: 'Asc' | 'Desc';
}
export interface Sort {
    /** Unique identifier of a field. */
    fieldId: string;
    /** A structured set of sort terms */
    sortOrder: 'Asc' | 'Desc';
}
export interface BatchGetCaseRuleInput {
    /** A list of case rule identifiers. */
    caseRules: CaseRuleIdentifier[];
    /** Unique identifier of a Cases domain. */
    domainId: string;
}
export interface BatchGetFieldInput {
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** A list of unique field identifiers. */
    fields: FieldIdentifier[];
}
export interface BatchPutFieldOptionsInput {
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** The unique identifier of a field. */
    fieldId: string;
    /** A list of FieldOption objects. */
    options: FieldOption[];
}
export interface CreateCaseInput {
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** An array of objects with field ID (matching ListFields/DescribeField) and value union data. */
    fields: FieldValue[];
    /** A unique identifier of a template. */
    templateId: 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;
    performedBy?: {
        userArn?: string;
    } | {
        customEntity?: string;
    };
    /** A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource. */
    tags?: Record<string, string>;
}
export interface CreateCaseRuleInput {
    /** Unique identifier of a Cases domain. */
    domainId: string;
    /** Name of the case rule. */
    name: string;
    /** Represents what rule type should take place, under what conditions. */
    rule: {
        required?: RequiredCaseRule;
    } | {
        fieldOptions?: FieldOptionsCaseRule;
    } | {
        hidden?: HiddenCaseRule;
    };
    /** The description of a case rule. */
    description?: string;
}
export interface CreateDomainInput {
    /** The name for your Cases domain. It must be unique for your Amazon Web Services account. */
    name: string;
}
export interface CreateFieldInput {
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** The name of the field. */
    name: string;
    /** Defines the data type, some system constraints, and default display of the field. */
    type: 'Text' | 'Number' | 'Boolean' | 'DateTime' | 'SingleSelect' | 'Url' | 'User';
    /** Union of field attributes. */
    attributes?: {
        text?: TextAttributes;
    };
    /** The description of the field. */
    description?: string;
}
export interface CreateLayoutInput {
    /** Information about which fields will be present in the layout, and information about the order of the fields. */
    content: {
        basic?: BasicLayout;
    };
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** The name of the layout. It must be unique for the Cases domain. */
    name: string;
}
export interface CreateRelatedItemInput {
    /** A unique identifier of the case. */
    caseId: string;
    /** The content of a related item to be created. */
    content: any;
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** The type of a related item. */
    type: 'Contact' | 'Comment' | 'File' | 'Sla' | 'ConnectCase' | 'Custom';
    /** Represents the creator of the related item. */
    performedBy?: {
        userArn?: string;
    } | {
        customEntity?: string;
    };
}
export interface CreateTemplateInput {
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** A name for the template. It must be unique per domain. */
    name: string;
    /** A brief description of the template. */
    description?: string;
    /** Configuration of layouts associated to the template. */
    layoutConfiguration?: LayoutConfiguration;
    /** A list of fields that must contain a value for a case to be successfully created with this template. */
    requiredFields?: RequiredField[];
    /** A list of case rules (also known as case field conditions) on a template. */
    rules?: TemplateRule[];
    /** The status of the template. */
    status?: 'Active' | 'Inactive';
    /** Defines tag propagation configuration for resources created within a domain. Tags specified here will be automatically applied to resources being created for the specified resource type. */
    tagPropagationConfigurations?: TagPropagationConfiguration[];
}
export interface DeleteCaseInput {
    /** A unique identifier of the case. */
    caseId: string;
    /** A unique identifier of the Cases domain. */
    domainId: string;
}
export interface DeleteCaseRuleInput {
    /** Unique identifier of a case rule. */
    caseRuleId: string;
    /** Unique identifier of a Cases domain. */
    domainId: string;
}
export interface DeleteDomainInput {
    /** The unique identifier of the Cases domain. */
    domainId: string;
}
export interface DeleteFieldInput {
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** Unique identifier of the field. */
    fieldId: string;
}
export interface DeleteLayoutInput {
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** The unique identifier of the layout. */
    layoutId: string;
}
export interface DeleteRelatedItemInput {
    /** A unique identifier of the case. */
    caseId: string;
    /** A unique identifier of the Cases domain. */
    domainId: string;
    /** A unique identifier of a related item. */
    relatedItemId: string;
}
export interface DeleteTemplateInput {
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** A unique identifier of a template. */
    templateId: string;
}
export interface GetCaseInput {
    /** A unique identifier of the case. */
    caseId: string;
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** A list of unique field identifiers. */
    fields: FieldIdentifier[];
    /** 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 GetCaseAuditEventsInput {
    /** A unique identifier of the case. */
    caseId: string;
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** The maximum number of audit events to return. When no value is provided, 25 is the default. */
    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 GetCaseEventConfigurationInput {
    /** The unique identifier of the Cases domain. */
    domainId: string;
}
export interface GetDomainInput {
    /** The unique identifier of the Cases domain. */
    domainId: string;
}
export interface GetLayoutInput {
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** The unique identifier of the layout. */
    layoutId: string;
}
export interface GetTemplateInput {
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** A unique identifier of a template. */
    templateId: string;
}
export interface ListCaseRulesInput {
    /** Unique identifier of a Cases domain. */
    domainId: 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 ListCasesForContactInput {
    /** A unique identifier of a contact in Amazon Connect. */
    contactArn: string;
    /** The unique identifier of the Cases domain. */
    domainId: 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 ListDomainsInput {
    /** 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 ListFieldOptionsInput {
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** The unique identifier of a field. */
    fieldId: 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;
    /** A list of FieldOption values to filter on for ListFieldOptions. */
    values?: string[];
}
export interface ListFieldsInput {
    /** The unique identifier of the Cases domain. */
    domainId: 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 ListLayoutsInput {
    /** The unique identifier of the Cases domain. */
    domainId: 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 ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) */
    arn: string;
}
export interface ListTemplatesInput {
    /** The unique identifier of the Cases domain. */
    domainId: 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;
    /** A list of status values to filter on. */
    status?: 'Active' | 'Inactive'[];
}
export interface PutCaseEventConfigurationInput {
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** Configuration to enable EventBridge case event delivery and determine what data is delivered. */
    eventBridge: EventBridgeConfiguration;
}
export interface SearchAllRelatedItemsInput {
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** The list of types of related items and their parameters to use for filtering. The filters work as an OR condition: caller gets back related items that match any of the specified filter types. */
    filters?: any[];
    /** 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;
    /** A structured set of sort terms to specify the order in which related items should be returned. Supports sorting by association time or case ID. The sorts work in the order specified: first sort term t */
    sorts?: SearchAllRelatedItemsSort[];
}
export interface SearchCasesInput {
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** The list of field identifiers to be returned as part of the response. */
    fields?: FieldIdentifier[];
    /** A list of filter objects. */
    filter?: any;
    /** The maximum number of cases to return. When no value is provided, 25 is the default. */
    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;
    /** A word or phrase used to perform a quick search. */
    searchTerm?: string;
    /** A list of sorts where each sort specifies a field and their sort order to be applied to the results. */
    sorts?: Sort[];
}
export interface SearchRelatedItemsInput {
    /** A unique identifier of the case. */
    caseId: string;
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** The list of types of related items and their parameters to use for filtering. */
    filters?: any[];
    /** 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 TagResourceInput {
    /** The Amazon Resource Name (ARN) */
    arn: string;
    /** A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) */
    arn: string;
    /** List of tag keys. */
    tagKeys: string[];
}
export interface UpdateCaseInput {
    /** A unique identifier of the case. */
    caseId: string;
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** An array of objects with fieldId (matching ListFields/DescribeField) and value union data, structured identical to CreateCase. */
    fields: FieldValue[];
    performedBy?: {
        userArn?: string;
    } | {
        customEntity?: string;
    };
}
export interface UpdateCaseRuleInput {
    /** Unique identifier of a case rule. */
    caseRuleId: string;
    /** Unique identifier of a Cases domain. */
    domainId: string;
    /** Description of a case rule. */
    description?: string;
    /** Name of the case rule. */
    name?: string;
    /** Represents what rule type should take place, under what conditions. */
    rule?: {
        required?: RequiredCaseRule;
    } | {
        fieldOptions?: FieldOptionsCaseRule;
    } | {
        hidden?: HiddenCaseRule;
    };
}
export interface UpdateFieldInput {
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** The unique identifier of a field. */
    fieldId: string;
    /** Union of field attributes. */
    attributes?: {
        text?: TextAttributes;
    };
    /** The description of a field. */
    description?: string;
    /** The name of the field. */
    name?: string;
}
export interface UpdateLayoutInput {
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** The unique identifier of the layout. */
    layoutId: string;
    /** Information about which fields will be present in the layout, the order of the fields. */
    content?: {
        basic?: BasicLayout;
    };
    /** The name of the layout. It must be unique per domain. */
    name?: string;
}
export interface UpdateTemplateInput {
    /** The unique identifier of the Cases domain. */
    domainId: string;
    /** A unique identifier for the template. */
    templateId: string;
    /** A brief description of the template. */
    description?: string;
    /** Configuration of layouts associated to the template. */
    layoutConfiguration?: LayoutConfiguration;
    /** The name of the template. It must be unique per domain. */
    name?: string;
    /** A list of fields that must contain a value for a case to be successfully created with this template. */
    requiredFields?: RequiredField[];
    /** A list of case rules (also known as case field conditions) on a template. */
    rules?: TemplateRule[];
    /** The status of the template. */
    status?: 'Active' | 'Inactive';
    /** Defines tag propagation configuration for resources created within a domain. Tags specified here will be automatically applied to resources being created for the specified resource type. */
    tagPropagationConfigurations?: TagPropagationConfiguration[];
}
/** ConnectCases service binding for Step Functions SDK integrations. */
export declare class ConnectCases {
    constructor();
    batchGetCaseRule<T>(params: BatchGetCaseRuleInput): Promise<T>;
    batchGetField<T>(params: BatchGetFieldInput): Promise<T>;
    batchPutFieldOptions<T>(params: BatchPutFieldOptionsInput): Promise<T>;
    createCase<T>(params: CreateCaseInput): Promise<T>;
    createCaseRule<T>(params: CreateCaseRuleInput): Promise<T>;
    createDomain<T>(params: CreateDomainInput): Promise<T>;
    createField<T>(params: CreateFieldInput): Promise<T>;
    createLayout<T>(params: CreateLayoutInput): Promise<T>;
    createRelatedItem<T>(params: CreateRelatedItemInput): Promise<T>;
    createTemplate<T>(params: CreateTemplateInput): Promise<T>;
    deleteCase<T>(params: DeleteCaseInput): Promise<T>;
    deleteCaseRule<T>(params: DeleteCaseRuleInput): Promise<T>;
    deleteDomain<T>(params: DeleteDomainInput): Promise<T>;
    deleteField<T>(params: DeleteFieldInput): Promise<T>;
    deleteLayout<T>(params: DeleteLayoutInput): Promise<T>;
    deleteRelatedItem<T>(params: DeleteRelatedItemInput): Promise<T>;
    deleteTemplate<T>(params: DeleteTemplateInput): Promise<T>;
    getCase<T>(params: GetCaseInput): Promise<T>;
    getCaseAuditEvents<T>(params: GetCaseAuditEventsInput): Promise<T>;
    getCaseEventConfiguration<T>(params: GetCaseEventConfigurationInput): Promise<T>;
    getDomain<T>(params: GetDomainInput): Promise<T>;
    getLayout<T>(params: GetLayoutInput): Promise<T>;
    getTemplate<T>(params: GetTemplateInput): Promise<T>;
    listCaseRules<T>(params: ListCaseRulesInput): Promise<T>;
    listCasesForContact<T>(params: ListCasesForContactInput): Promise<T>;
    listDomains<T>(params: ListDomainsInput): Promise<T>;
    listFieldOptions<T>(params: ListFieldOptionsInput): Promise<T>;
    listFields<T>(params: ListFieldsInput): Promise<T>;
    listLayouts<T>(params: ListLayoutsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listTemplates<T>(params: ListTemplatesInput): Promise<T>;
    putCaseEventConfiguration<T>(params: PutCaseEventConfigurationInput): Promise<T>;
    searchAllRelatedItems<T>(params: SearchAllRelatedItemsInput): Promise<T>;
    searchCases<T>(params: SearchCasesInput): Promise<T>;
    searchRelatedItems<T>(params: SearchRelatedItemsInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateCase<T>(params: UpdateCaseInput): Promise<T>;
    updateCaseRule<T>(params: UpdateCaseRuleInput): Promise<T>;
    updateField<T>(params: UpdateFieldInput): Promise<T>;
    updateLayout<T>(params: UpdateLayoutInput): Promise<T>;
    updateTemplate<T>(params: UpdateTemplateInput): Promise<T>;
}
//# sourceMappingURL=ConnectCases.d.ts.map