import { type AwsIamStore, type OrganizationPolicyType, type ResourceTypeParts } from '../AwsIamStore.js';
/**
 * A SQLite-based implementation of the AwsIamStore interface.
 */
export declare class SqliteAwsIamStore implements AwsIamStore {
    private readonly dbPath;
    private readonly partition;
    private readonly iamCollectVersion;
    private readonly db;
    constructor(dbPath: string, partition: string, iamCollectVersion: string);
    close(): void;
    writeBatch(fn: () => Promise<void>): Promise<void>;
    /**
     * Returns the SQL DDL for a SQLite database.
     *
     * @returns The DDL to create the schema in a SQLite database.
     */
    static schemaSql(iamCollectVersion: string): string;
    private init;
    private run;
    private query;
    private isEmptyContent;
    private serialize;
    saveResourceMetadata(accountId: string, arn: string, metadataType: string, data: string | any): Promise<void>;
    listResourceMetadata(accountId: string, arn: string): Promise<string[]>;
    getResourceMetadata<T, D extends T>(accountId: string, arn: string, metadataType: string, defaultValue?: D): Promise<D extends undefined ? T | undefined : T>;
    deleteResourceMetadata(accountId: string, arn: string, metadataType: string): Promise<void>;
    deleteResource(accountId: string, arn: string): Promise<void>;
    listResources(accountId: string, options: ResourceTypeParts): Promise<string[]>;
    findResourceMetadata<T>(accountId: string, options: ResourceTypeParts): Promise<T[]>;
    syncResourceList(accountId: string, options: ResourceTypeParts, desiredResources: string[]): Promise<void>;
    deleteAccountMetadata(accountId: string, metadataType: string): Promise<void>;
    saveAccountMetadata(accountId: string, metadataType: string, data: any): Promise<void>;
    getAccountMetadata<T, D extends T>(accountId: string, metadataType: string, defaultValue?: D): Promise<D extends undefined ? T | undefined : T>;
    getOrganizationMetadata<T, D extends T>(organizationId: string, metadataType: string, defaultValue?: D): Promise<D extends undefined ? T | undefined : T>;
    saveOrganizationMetadata(organizationId: string, metadataType: string, data: any): Promise<void>;
    deleteOrganizationMetadata(organizationId: string, metadataType: string): Promise<void>;
    listOrganizationalUnits(organizationId: string): Promise<string[]>;
    deleteOrganizationalUnitMetadata(organizationId: string, ouId: string, metadataType: string): Promise<void>;
    saveOrganizationalUnitMetadata(organizationId: string, ouId: string, metadataType: string, data: any): Promise<void>;
    getOrganizationalUnitMetadata<T, D extends T>(organizationId: string, ouId: string, metadataType: string, defaultValue?: D): Promise<D extends undefined ? T | undefined : T>;
    deleteOrganizationalUnit(organizationId: string, ouId: string): Promise<void>;
    deleteOrganizationPolicyMetadata(organizationId: string, policyType: OrganizationPolicyType, policyId: string, metadataType: string): Promise<void>;
    saveOrganizationPolicyMetadata(organizationId: string, policyType: OrganizationPolicyType, policyId: string, metadataType: string, data: any): Promise<void>;
    getOrganizationPolicyMetadata<T, D extends T>(organizationId: string, policyType: OrganizationPolicyType, policyId: string, metadataType: string, defaultValue?: D): Promise<D extends undefined ? T | undefined : T>;
    deleteOrganizationPolicy(organizationId: string, policyType: OrganizationPolicyType, policyId: string): Promise<void>;
    listOrganizationPolicies(organizationId: string, policyType: OrganizationPolicyType): Promise<string[]>;
    syncRamResources(accountId: string, region: string | undefined, arns: string[]): Promise<void>;
    saveRamResource(accountId: string, arn: string, data: any): Promise<void>;
    getRamResource<T, D extends T>(accountId: string, arn: string, defaultValue?: D): Promise<D extends undefined ? T | undefined : T>;
    listAccountIds(): Promise<string[]>;
    getIndex<T>(indexName: string, defaultValue: T): Promise<{
        data: T;
        lockId: string;
    }>;
    saveIndex<T>(indexName: string, data: T, lockId: string): Promise<boolean>;
}
//# sourceMappingURL=SqliteAwsIamStore.d.ts.map