export interface DomainStatus {
    DomainId: string;
    DomainName: string;
    ARN: string;
    Created: boolean;
    Deleted: boolean;
    Endpoint?: string;
    Endpoints?: Record<string, string>;
    Processing: boolean;
    EngineVersion: string;
    ClusterConfig: {
        InstanceType: string;
        InstanceCount: number;
        DedicatedMasterEnabled: boolean;
        ZoneAwarenessEnabled: boolean;
        DedicatedMasterType?: string;
        DedicatedMasterCount?: number;
    };
    EBSOptions?: {
        EBSEnabled: boolean;
        VolumeType?: string;
        VolumeSize?: number;
    };
}
/**
 * OpenSearch client for direct API calls
 */
export declare class OpenSearchClient {
    private client;
    private region;
    constructor(region?: string);
    /**
     * Create an OpenSearch domain
     */
    createDomain(params: {
        DomainName: string;
        EngineVersion?: string;
        ClusterConfig?: {
            InstanceType?: string;
            InstanceCount?: number;
            DedicatedMasterEnabled?: boolean;
            DedicatedMasterType?: string;
            DedicatedMasterCount?: number;
            ZoneAwarenessEnabled?: boolean;
        };
        EBSOptions?: {
            EBSEnabled: boolean;
            VolumeType?: string;
            VolumeSize?: number;
        };
        AccessPolicies?: string;
        EncryptionAtRestOptions?: {
            Enabled: boolean;
            KmsKeyId?: string;
        };
        NodeToNodeEncryptionOptions?: {
            Enabled: boolean;
        };
        AdvancedSecurityOptions?: {
            Enabled: boolean;
            InternalUserDatabaseEnabled?: boolean;
            MasterUserOptions?: {
                MasterUserName?: string;
                MasterUserPassword?: string;
            };
        };
        DomainEndpointOptions?: {
            EnforceHTTPS?: boolean;
            TLSSecurityPolicy?: string;
        };
        Tags?: Array<{
            Key: string;
            Value: string;
        }>;
    }): Promise<{
        DomainStatus: DomainStatus;
    }>;
    /**
     * Delete an OpenSearch domain
     */
    deleteDomain(domainName: string): Promise<{
        DomainStatus: DomainStatus;
    }>;
    /**
     * Describe an OpenSearch domain
     */
    describeDomain(domainName: string): Promise<{
        DomainStatus: DomainStatus;
    }>;
    /**
     * List all OpenSearch domains
     */
    listDomainNames(): Promise<{
        DomainNames: Array<{
            DomainName: string;
            EngineType: string;
        }>;
    }>;
    /**
     * Update domain config
     */
    updateDomainConfig(params: {
        DomainName: string;
        ClusterConfig?: {
            InstanceType?: string;
            InstanceCount?: number;
        };
        EBSOptions?: {
            EBSEnabled: boolean;
            VolumeType?: string;
            VolumeSize?: number;
        };
        AccessPolicies?: string;
    }): Promise<{
        DomainConfig: any;
    }>;
}
