/**
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
 *  with the License. A copy of the License is located at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
 *  OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
 *  and limitations under the License.
 */
import * as opensearch from 'aws-cdk-lib/aws-opensearchservice';
import * as iam from 'aws-cdk-lib/aws-iam';
import * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';
import * as cognito from 'aws-cdk-lib/aws-cognito';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
import { Construct } from 'constructs';
export interface BuildOpenSearchProps {
    readonly identitypool: cognito.CfnIdentityPool;
    readonly userpool: cognito.UserPool;
    readonly cognitoAuthorizedRoleARN: string;
    readonly serviceRoleARN?: string;
    readonly vpc?: ec2.IVpc;
    readonly openSearchDomainName: string;
    readonly clientDomainProps?: opensearch.CfnDomainProps;
    readonly securityGroupIds?: string[];
}
export interface BuildOpenSearchResponse {
    readonly domain: opensearch.CfnDomain;
    readonly role: iam.Role;
}
/**
 * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
 */
export declare function buildOpenSearch(scope: Construct, props: BuildOpenSearchProps): BuildOpenSearchResponse;
/**
 * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
 */
export declare function buildOpenSearchCWAlarms(scope: Construct): cloudwatch.Alarm[];
export interface OpenSearchProps {
    readonly openSearchDomainProps?: opensearch.CfnDomainProps;
}
export declare function CheckOpenSearchProps(propsObject: OpenSearchProps | any): void;
