export interface AnalysisOptions {
    /** A JSON object that defines synonym groups and aliases. A synonym group is an array of arrays, where each sub-array is a group of terms where each term in the group is considered a synonym of every oth */
    Synonyms?: string;
    /** A JSON array of terms to ignore during indexing and searching. For example, ["a", "an", "the", "of"]. The stopwords dictionary must explicitly list each word you want to ignore. Wildcards and regular  */
    Stopwords?: string;
    /** A JSON object that contains a collection of string:value pairs that each map a term to its stem. For example, {"term1": "stem1", "term2": "stem2", "term3": "stem3"}. The stemming dictionary is applied */
    StemmingDictionary?: string;
    /** A JSON array that contains a collection of terms, tokens, readings and part of speech for Japanese Tokenizaiton. The Japanese tokenization dictionary enables you to override the default tokenization f */
    JapaneseTokenizationDictionary?: string;
    /** The level of algorithmic stemming to perform: none, minimal, light, or full. The available levels vary depending on the language. For more information, see Language Specific Text Processing Settings i */
    AlgorithmicStemming?: 'none' | 'minimal' | 'light' | 'full';
}
export interface AnalysisScheme {
    AnalysisSchemeName: string;
    AnalysisSchemeLanguage: 'ar' | 'bg' | 'ca' | 'cs' | 'da' | 'de' | 'el' | 'en' | 'es' | 'eu' | 'fa' | 'fi' | 'fr' | 'ga' | 'gl' | 'he' | 'hi' | 'hu' | 'hy' | 'id' | 'it' | 'ja' | 'ko' | 'lv' | 'mul' | 'nl' | 'no' | 'pt' | 'ro' | 'ru' | 'sv' | 'th' | 'tr' | 'zh-Hans' | 'zh-Hant';
    AnalysisOptions?: AnalysisOptions;
}
export interface Expression {
    ExpressionName: string;
    ExpressionValue: string;
}
export interface IntOptions {
    /** A value to use for the field if the field isn't specified for a document. This can be important if you are using the field in an expression and that field is not present in every document. */
    DefaultValue?: number;
    /** The name of the source field to map to the field. */
    SourceField?: string;
    /** Whether facet information can be returned for the field. */
    FacetEnabled?: boolean;
    /** Whether the contents of the field are searchable. */
    SearchEnabled?: boolean;
    /** Whether the contents of the field can be returned in the search results. */
    ReturnEnabled?: boolean;
    /** Whether the field can be used to sort the search results. */
    SortEnabled?: boolean;
}
export interface DoubleOptions {
    /** A value to use for the field if the field isn't specified for a document. This can be important if you are using the field in an expression and that field is not present in every document. */
    DefaultValue?: number;
    /** The name of the source field to map to the field. */
    SourceField?: string;
    /** Whether facet information can be returned for the field. */
    FacetEnabled?: boolean;
    /** Whether the contents of the field are searchable. */
    SearchEnabled?: boolean;
    /** Whether the contents of the field can be returned in the search results. */
    ReturnEnabled?: boolean;
    /** Whether the field can be used to sort the search results. */
    SortEnabled?: boolean;
}
export interface LiteralOptions {
    /** A value to use for the field if the field isn't specified for a document. */
    DefaultValue?: string;
    SourceField?: string;
    /** Whether facet information can be returned for the field. */
    FacetEnabled?: boolean;
    /** Whether the contents of the field are searchable. */
    SearchEnabled?: boolean;
    /** Whether the contents of the field can be returned in the search results. */
    ReturnEnabled?: boolean;
    /** Whether the field can be used to sort the search results. */
    SortEnabled?: boolean;
}
export interface TextOptions {
    /** A value to use for the field if the field isn't specified for a document. */
    DefaultValue?: string;
    SourceField?: string;
    /** Whether the contents of the field can be returned in the search results. */
    ReturnEnabled?: boolean;
    /** Whether the field can be used to sort the search results. */
    SortEnabled?: boolean;
    /** Whether highlights can be returned for the field. */
    HighlightEnabled?: boolean;
    /** The name of an analysis scheme for a text field. */
    AnalysisScheme?: string;
}
export interface DateOptions {
    /** A value to use for the field if the field isn't specified for a document. */
    DefaultValue?: string;
    SourceField?: string;
    /** Whether facet information can be returned for the field. */
    FacetEnabled?: boolean;
    /** Whether the contents of the field are searchable. */
    SearchEnabled?: boolean;
    /** Whether the contents of the field can be returned in the search results. */
    ReturnEnabled?: boolean;
    /** Whether the field can be used to sort the search results. */
    SortEnabled?: boolean;
}
export interface LatLonOptions {
    /** A value to use for the field if the field isn't specified for a document. */
    DefaultValue?: string;
    SourceField?: string;
    /** Whether facet information can be returned for the field. */
    FacetEnabled?: boolean;
    /** Whether the contents of the field are searchable. */
    SearchEnabled?: boolean;
    /** Whether the contents of the field can be returned in the search results. */
    ReturnEnabled?: boolean;
    /** Whether the field can be used to sort the search results. */
    SortEnabled?: boolean;
}
export interface IntArrayOptions {
    /** A value to use for the field if the field isn't specified for a document. */
    DefaultValue?: number;
    /** A list of source fields to map to the field. */
    SourceFields?: string;
    /** Whether facet information can be returned for the field. */
    FacetEnabled?: boolean;
    /** Whether the contents of the field are searchable. */
    SearchEnabled?: boolean;
    /** Whether the contents of the field can be returned in the search results. */
    ReturnEnabled?: boolean;
}
export interface DoubleArrayOptions {
    /** A value to use for the field if the field isn't specified for a document. */
    DefaultValue?: number;
    /** A list of source fields to map to the field. */
    SourceFields?: string;
    /** Whether facet information can be returned for the field. */
    FacetEnabled?: boolean;
    /** Whether the contents of the field are searchable. */
    SearchEnabled?: boolean;
    /** Whether the contents of the field can be returned in the search results. */
    ReturnEnabled?: boolean;
}
export interface LiteralArrayOptions {
    /** A value to use for the field if the field isn't specified for a document. */
    DefaultValue?: string;
    /** A list of source fields to map to the field. */
    SourceFields?: string;
    /** Whether facet information can be returned for the field. */
    FacetEnabled?: boolean;
    /** Whether the contents of the field are searchable. */
    SearchEnabled?: boolean;
    /** Whether the contents of the field can be returned in the search results. */
    ReturnEnabled?: boolean;
}
export interface TextArrayOptions {
    /** A value to use for the field if the field isn't specified for a document. */
    DefaultValue?: string;
    /** A list of source fields to map to the field. */
    SourceFields?: string;
    /** Whether the contents of the field can be returned in the search results. */
    ReturnEnabled?: boolean;
    /** Whether highlights can be returned for the field. */
    HighlightEnabled?: boolean;
    /** The name of an analysis scheme for a text-array field. */
    AnalysisScheme?: string;
}
export interface DateArrayOptions {
    /** A value to use for the field if the field isn't specified for a document. */
    DefaultValue?: string;
    /** A list of source fields to map to the field. */
    SourceFields?: string;
    /** Whether facet information can be returned for the field. */
    FacetEnabled?: boolean;
    /** Whether the contents of the field are searchable. */
    SearchEnabled?: boolean;
    /** Whether the contents of the field can be returned in the search results. */
    ReturnEnabled?: boolean;
}
export interface IndexField {
    /** A string that represents the name of an index field. CloudSearch supports regular index fields as well as dynamic fields. A dynamic field's name defines a pattern that begins or ends with a wildcard.  */
    IndexFieldName: string;
    IndexFieldType: 'int' | 'double' | 'literal' | 'text' | 'date' | 'latlon' | 'int-array' | 'double-array' | 'literal-array' | 'text-array' | 'date-array';
    IntOptions?: IntOptions;
    DoubleOptions?: DoubleOptions;
    LiteralOptions?: LiteralOptions;
    TextOptions?: TextOptions;
    DateOptions?: DateOptions;
    LatLonOptions?: LatLonOptions;
    IntArrayOptions?: IntArrayOptions;
    DoubleArrayOptions?: DoubleArrayOptions;
    LiteralArrayOptions?: LiteralArrayOptions;
    TextArrayOptions?: TextArrayOptions;
    DateArrayOptions?: DateArrayOptions;
}
export interface DocumentSuggesterOptions {
    /** The name of the index field you want to use for suggestions. */
    SourceField: string;
    /** The level of fuzziness allowed when suggesting matches for a string: none, low, or high. With none, the specified string is treated as an exact prefix. With low, suggestions must differ from the speci */
    FuzzyMatching?: 'none' | 'low' | 'high';
    /** An expression that computes a score for each suggestion to control how they are sorted. The scores are rounded to the nearest integer, with a floor of 0 and a ceiling of 2^31-1. A document's relevance */
    SortExpression?: string;
}
export interface Suggester {
    SuggesterName: string;
    DocumentSuggesterOptions: DocumentSuggesterOptions;
}
export interface DomainEndpointOptions {
    /** Whether the domain is HTTPS only enabled. */
    EnforceHTTPS?: boolean;
    /** The minimum required TLS version */
    TLSSecurityPolicy?: 'Policy-Min-TLS-1-0-2019-07' | 'Policy-Min-TLS-1-2-2019-07';
}
export interface ScalingParameters {
    /** The instance type that you want to preconfigure for your domain. For example, search.m1.small. */
    DesiredInstanceType?: 'search.m1.small' | 'search.m1.large' | 'search.m2.xlarge' | 'search.m2.2xlarge' | 'search.m3.medium' | 'search.m3.large' | 'search.m3.xlarge' | 'search.m3.2xlarge' | 'search.small' | 'search.medium' | 'search.large' | 'search.xlarge' | 'search.2xlarge' | 'search.previousgeneration.small' | 'search.previousgeneration.large' | 'search.previousgeneration.xlarge' | 'search.previousgeneration.2xlarge';
    /** The number of replicas you want to preconfigure for each index partition. */
    DesiredReplicationCount?: number;
    /** The number of partitions you want to preconfigure for your domain. Only valid when you select m2.2xlarge as the desired instance type. */
    DesiredPartitionCount?: number;
}
/** Container for the parameters to the BuildSuggester operation. Specifies the name of the domain you want to update. */
export interface BuildSuggestersInput {
    DomainName: string;
}
/** Container for the parameters to the CreateDomain operation. Specifies a name for the new search domain. */
export interface CreateDomainInput {
    /** A name for the domain you are creating. Allowed characters are a-z (lower-case letters), 0-9, and hyphen (-). Domain names must start with a letter or number and be at least 3 and no more than 28 char */
    DomainName: string;
}
/** Container for the parameters to the DefineAnalysisScheme operation. Specifies the name of the domain you want to update and the analysis scheme configuration. */
export interface DefineAnalysisSchemeInput {
    AnalysisScheme: AnalysisScheme;
    DomainName: string;
}
/** Container for the parameters to the DefineExpression operation. Specifies the name of the domain you want to update and the expression you want to configure. */
export interface DefineExpressionInput {
    DomainName: string;
    Expression: Expression;
}
/** Container for the parameters to the DefineIndexField operation. Specifies the name of the domain you want to update and the index field configuration. */
export interface DefineIndexFieldInput {
    DomainName: string;
    /** The index field and field options you want to configure. */
    IndexField: IndexField;
}
/** Container for the parameters to the DefineSuggester operation. Specifies the name of the domain you want to update and the suggester configuration. */
export interface DefineSuggesterInput {
    DomainName: string;
    Suggester: Suggester;
}
/** Container for the parameters to the DeleteAnalysisScheme operation. Specifies the name of the domain you want to update and the analysis scheme you want to delete. */
export interface DeleteAnalysisSchemeInput {
    /** The name of the analysis scheme you want to delete. */
    AnalysisSchemeName: string;
    DomainName: string;
}
/** Container for the parameters to the DeleteDomain operation. Specifies the name of the domain you want to delete. */
export interface DeleteDomainInput {
    /** The name of the domain you want to permanently delete. */
    DomainName: string;
}
/** Container for the parameters to the DeleteExpression operation. Specifies the name of the domain you want to update and the name of the expression you want to delete. */
export interface DeleteExpressionInput {
    DomainName: string;
    /** The name of the Expression to delete. */
    ExpressionName: string;
}
/** Container for the parameters to the DeleteIndexField operation. Specifies the name of the domain you want to update and the name of the index field you want to delete. */
export interface DeleteIndexFieldInput {
    DomainName: string;
    /** The name of the index field your want to remove from the domain's indexing options. */
    IndexFieldName: string;
}
/** Container for the parameters to the DeleteSuggester operation. Specifies the name of the domain you want to update and name of the suggester you want to delete. */
export interface DeleteSuggesterInput {
    DomainName: string;
    /** Specifies the name of the suggester you want to delete. */
    SuggesterName: string;
}
/** Container for the parameters to the DescribeAnalysisSchemes operation. Specifies the name of the domain you want to describe. To limit the response to particular analysis schemes, specify the names of */
export interface DescribeAnalysisSchemesInput {
    /** The name of the domain you want to describe. */
    DomainName: string;
    /** The analysis schemes you want to describe. */
    AnalysisSchemeNames?: string[];
    /** Whether to display the deployed configuration (true) or include any pending changes (false). Defaults to false. */
    Deployed?: boolean;
}
/** Container for the parameters to the DescribeAvailabilityOptions operation. Specifies the name of the domain you want to describe. To show the active configuration and exclude any pending changes, set  */
export interface DescribeAvailabilityOptionsInput {
    /** The name of the domain you want to describe. */
    DomainName: string;
    /** Whether to display the deployed configuration (true) or include any pending changes (false). Defaults to false. */
    Deployed?: boolean;
}
/** Container for the parameters to the DescribeDomainEndpointOptions operation. Specify the name of the domain you want to describe. To show the active configuration and exclude any pending changes, set  */
export interface DescribeDomainEndpointOptionsInput {
    /** A string that represents the name of a domain. */
    DomainName: string;
    /** Whether to retrieve the latest configuration (which might be in a Processing state) or the current, active configuration. Defaults to false. */
    Deployed?: boolean;
}
/** Container for the parameters to the DescribeDomains operation. By default shows the status of all domains. To restrict the response to particular domains, specify the names of the domains you want to  */
export interface DescribeDomainsInput {
    /** The names of the domains you want to include in the response. */
    DomainNames?: string[];
}
/** Container for the parameters to the DescribeDomains operation. Specifies the name of the domain you want to describe. To restrict the response to particular expressions, specify the names of the expre */
export interface DescribeExpressionsInput {
    /** The name of the domain you want to describe. */
    DomainName: string;
    /** Whether to display the deployed configuration (true) or include any pending changes (false). Defaults to false. */
    Deployed?: boolean;
    /** Limits the DescribeExpressions response to the specified expressions. If not specified, all expressions are shown. */
    ExpressionNames?: string[];
}
/** Container for the parameters to the DescribeIndexFields operation. Specifies the name of the domain you want to describe. To restrict the response to particular index fields, specify the names of the  */
export interface DescribeIndexFieldsInput {
    /** The name of the domain you want to describe. */
    DomainName: string;
    /** Whether to display the deployed configuration (true) or include any pending changes (false). Defaults to false. */
    Deployed?: boolean;
    /** A list of the index fields you want to describe. If not specified, information is returned for all configured index fields. */
    FieldNames?: string[];
}
/** Container for the parameters to the DescribeScalingParameters operation. Specifies the name of the domain you want to describe. */
export interface DescribeScalingParametersInput {
    DomainName: string;
}
/** Container for the parameters to the DescribeServiceAccessPolicies operation. Specifies the name of the domain you want to describe. To show the active configuration and exclude any pending changes, se */
export interface DescribeServiceAccessPoliciesInput {
    /** The name of the domain you want to describe. */
    DomainName: string;
    /** Whether to display the deployed configuration (true) or include any pending changes (false). Defaults to false. */
    Deployed?: boolean;
}
/** Container for the parameters to the DescribeSuggester operation. Specifies the name of the domain you want to describe. To restrict the response to particular suggesters, specify the names of the sugg */
export interface DescribeSuggestersInput {
    /** The name of the domain you want to describe. */
    DomainName: string;
    /** Whether to display the deployed configuration (true) or include any pending changes (false). Defaults to false. */
    Deployed?: boolean;
    /** The suggesters you want to describe. */
    SuggesterNames?: string[];
}
/** Container for the parameters to the IndexDocuments operation. Specifies the name of the domain you want to re-index. */
export interface IndexDocumentsInput {
    DomainName: string;
}
/** Container for the parameters to the UpdateAvailabilityOptions operation. Specifies the name of the domain you want to update and the Multi-AZ availability option. */
export interface UpdateAvailabilityOptionsInput {
    DomainName: string;
    /** You expand an existing search domain to a second Availability Zone by setting the Multi-AZ option to true. Similarly, you can turn off the Multi-AZ option to downgrade the domain to a single Availabil */
    MultiAZ: boolean;
}
/** Container for the parameters to the UpdateDomainEndpointOptions operation. Specifies the name of the domain you want to update and the domain endpoint options. */
export interface UpdateDomainEndpointOptionsInput {
    /** Whether to require that all requests to the domain arrive over HTTPS. We recommend Policy-Min-TLS-1-2-2019-07 for TLSSecurityPolicy. For compatibility with older clients, the default is Policy-Min-TLS */
    DomainEndpointOptions: DomainEndpointOptions;
    /** A string that represents the name of a domain. */
    DomainName: string;
}
/** Container for the parameters to the UpdateScalingParameters operation. Specifies the name of the domain you want to update and the scaling parameters you want to configure. */
export interface UpdateScalingParametersInput {
    DomainName: string;
    ScalingParameters: ScalingParameters;
}
/** Container for the parameters to the UpdateServiceAccessPolicies operation. Specifies the name of the domain you want to update and the access rules you want to configure. */
export interface UpdateServiceAccessPoliciesInput {
    /** The access rules you want to configure. These rules replace any existing rules. */
    AccessPolicies: string;
    DomainName: string;
}
/** CloudSearch service binding for Step Functions SDK integrations. */
export declare class CloudSearch {
    constructor();
    buildSuggesters<T>(params: BuildSuggestersInput): Promise<T>;
    createDomain<T>(params: CreateDomainInput): Promise<T>;
    defineAnalysisScheme<T>(params: DefineAnalysisSchemeInput): Promise<T>;
    defineExpression<T>(params: DefineExpressionInput): Promise<T>;
    defineIndexField<T>(params: DefineIndexFieldInput): Promise<T>;
    defineSuggester<T>(params: DefineSuggesterInput): Promise<T>;
    deleteAnalysisScheme<T>(params: DeleteAnalysisSchemeInput): Promise<T>;
    deleteDomain<T>(params: DeleteDomainInput): Promise<T>;
    deleteExpression<T>(params: DeleteExpressionInput): Promise<T>;
    deleteIndexField<T>(params: DeleteIndexFieldInput): Promise<T>;
    deleteSuggester<T>(params: DeleteSuggesterInput): Promise<T>;
    describeAnalysisSchemes<T>(params: DescribeAnalysisSchemesInput): Promise<T>;
    describeAvailabilityOptions<T>(params: DescribeAvailabilityOptionsInput): Promise<T>;
    describeDomainEndpointOptions<T>(params: DescribeDomainEndpointOptionsInput): Promise<T>;
    describeDomains<T>(params: DescribeDomainsInput): Promise<T>;
    describeExpressions<T>(params: DescribeExpressionsInput): Promise<T>;
    describeIndexFields<T>(params: DescribeIndexFieldsInput): Promise<T>;
    describeScalingParameters<T>(params: DescribeScalingParametersInput): Promise<T>;
    describeServiceAccessPolicies<T>(params: DescribeServiceAccessPoliciesInput): Promise<T>;
    describeSuggesters<T>(params: DescribeSuggestersInput): Promise<T>;
    indexDocuments<T>(params: IndexDocumentsInput): Promise<T>;
    listDomainNames<T>(): Promise<T>;
    updateAvailabilityOptions<T>(params: UpdateAvailabilityOptionsInput): Promise<T>;
    updateDomainEndpointOptions<T>(params: UpdateDomainEndpointOptionsInput): Promise<T>;
    updateScalingParameters<T>(params: UpdateScalingParametersInput): Promise<T>;
    updateServiceAccessPolicies<T>(params: UpdateServiceAccessPoliciesInput): Promise<T>;
}
//# sourceMappingURL=CloudSearch.d.ts.map