import type Database from 'better-sqlite3';
import type { RequestContext } from '../middleware/auth';
type JsonValue = string | number | boolean | null | JsonValue[] | {
    [key: string]: JsonValue;
};
export interface TenantExportBundle {
    schemaVersion: 1;
    generatedAt: string;
    tenantIdentityProof: {
        tenantId: string;
        organizationHash: string;
        workspaceIds: string[];
        generatedBy: string;
        requestId: string;
        proofHash: string;
    };
    manifest: {
        traceFilesIncluded: false;
        traceCount: number;
        reportCount: number;
        sessionCount: number;
        runCount: number;
        turnCount: number;
        memoryRecordCount: number;
        auditEventCount: number;
        providerCredentialCount: number;
        providerSnapshotCount: number;
    };
    tenant: {
        organization: Record<string, JsonValue> | null;
        workspaces: Array<Record<string, JsonValue>>;
        users: Array<Record<string, JsonValue>>;
        memberships: Array<Record<string, JsonValue>>;
    };
    traces: Array<Record<string, JsonValue>>;
    reports: Array<Record<string, JsonValue>>;
    sessions: Array<Record<string, JsonValue>>;
    runs: Array<Record<string, JsonValue>>;
    turns: Array<Record<string, JsonValue>>;
    knowledge: {
        memoryEntries: Array<Record<string, JsonValue>>;
    };
    auditEvents: Array<Record<string, JsonValue>>;
    providers: {
        credentials: Array<Record<string, JsonValue>>;
        snapshots: Array<Record<string, JsonValue>>;
    };
}
export interface TenantExportResult {
    bundle: TenantExportBundle;
    bundleSha256: string;
    canonicalPayload: string;
    filename: string;
}
export declare function stableStringify(value: unknown): string;
export declare function buildTenantExportBundle(db: Database.Database, context: RequestContext): Promise<TenantExportResult>;
export {};
//# sourceMappingURL=enterpriseTenantExportService.d.ts.map