/**
 * @author WMXPY
 * @namespace DatabaseManager
 * @description Full Feature
 */
import { ImbricateDatabaseAuditOptions, ImbricateDocumentQuery } from "../../database/definition";
import { ImbricateDatabaseSchemaForCreation } from "../../database/schema";
import { IImbricateDatabaseManager } from "../database-manager";
import { IMBRICATE_DATABASE_MANAGER_FEATURE } from "../feature";
import { ImbricateDatabaseManagerCreateDatabaseOutcome, ImbricateDatabaseManagerGetDatabaseOutcome, ImbricateDatabaseManagerQueryDatabasesOutcome, ImbricateDatabaseManagerRemoveDatabaseOutcome } from "../outcome";
export declare abstract class ImbricateDatabaseManagerFullFeatureBase implements IImbricateDatabaseManager {
    readonly supportedFeatures: IMBRICATE_DATABASE_MANAGER_FEATURE[];
    abstract queryDatabases(query: ImbricateDocumentQuery): PromiseLike<ImbricateDatabaseManagerQueryDatabasesOutcome>;
    abstract getDatabase(uniqueIdentifier: string): PromiseLike<ImbricateDatabaseManagerGetDatabaseOutcome>;
    abstract createDatabase(databaseName: string, schema: ImbricateDatabaseSchemaForCreation, auditOptions?: ImbricateDatabaseAuditOptions): PromiseLike<ImbricateDatabaseManagerCreateDatabaseOutcome>;
    abstract removeDatabase(uniqueIdentifier: string): PromiseLike<ImbricateDatabaseManagerRemoveDatabaseOutcome>;
}
