/** @packageDocumentation
 * @module SQLiteDb
 */
import { CloudSqlite } from "./CloudSqlite";
import { VersionedSqliteDb } from "./SQLiteDb";
import { IModelDb } from "./IModelDb";
import { OpenMode } from "@itwin/core-bentley";
import { LocalFileName } from "@itwin/core-common";
/** @internal */
export declare namespace SchemaSync {
    /** A CloudSqlite database for synchronizing schema changes across briefcases.  */
    class SchemaSyncDb extends VersionedSqliteDb {
        readonly myVersion = "4.0.0";
        protected createDDL(): void;
    }
    const setTestCache: (iModel: IModelDb, cacheName?: string) => void;
    const withLockedAccess: (iModel: IModelDb | {
        readonly fileName: LocalFileName;
    }, args: {
        operationName: string;
        openMode?: OpenMode;
        user?: string;
    }, operation: (access: CloudAccess) => Promise<void>) => Promise<void>;
    const withReadonlyAccess: (iModel: IModelDb | {
        readonly fileName: LocalFileName;
    }, operation: (access: CloudAccess) => Promise<void>) => Promise<void>;
    const isEnabled: (iModel: IModelDb) => boolean;
    /** Synchronize local briefcase schemas with cloud container */
    const pull: (iModel: IModelDb) => Promise<void>;
    const initializeForIModel: (arg: {
        iModel: IModelDb;
        containerProps: CloudSqlite.ContainerProps;
        overrideContainer?: boolean;
    }) => Promise<void>;
    /** Provides access to a cloud-based `SchemaSyncDb` to hold ECSchemas.  */
    class CloudAccess extends CloudSqlite.DbAccess<SchemaSyncDb> {
        constructor(props: CloudSqlite.ContainerAccessProps);
        getUri(): string;
        /**
       * Initialize a cloud container for use as a SchemaSync. The container must first be created via its storage supplier api (e.g. Azure, or AWS).
       * A valid sasToken that grants write access must be supplied. This function creates and uploads an empty ChannelDb into the container.
       * @note this deletes any existing content in the container.
       */
        static initializeDb(props: CloudSqlite.ContainerProps): Promise<void>;
    }
}
//# sourceMappingURL=SchemaSync.d.ts.map