import type { EncodedKey, JsonObject } from '../contract/index.js'; interface KeyDerivation { readonly pk: readonly string[]; readonly sk: readonly string[]; } export interface IndexAttributes { readonly pk?: string | undefined; readonly sk: string; } interface IndexedKeyDerivation extends KeyDerivation { readonly index?: string | undefined; readonly attributes?: IndexAttributes | undefined; } interface EntityKeySource { readonly name: string; readonly primary: KeyDerivation; readonly accessPatterns: readonly IndexedKeyDerivation[]; } export declare const deriveStorageKey: (entity: string, data: JsonObject, derivation: KeyDerivation) => EncodedKey; export declare const deriveStorageIndexes: (entity: string, patterns: readonly IndexedKeyDerivation[], data: JsonObject) => Record; export declare const deriveSnapshotIndexes: (entity: EntityKeySource, data: JsonObject, updated: string) => Record; export declare const deriveSnapshotKeys: (entity: EntityKeySource, data: JsonObject, updated: string) => { pk: string; sk: string; keys: Record; }; export {}; //# sourceMappingURL=derivation.d.ts.map