import { type VercelMetadata, type VercelMetadataInput, type VercelBranchMetadata, type VercelBranchMetadataInput, type VercelScopeMetadata, type VercelScopeMetadataInput } from './metadata-schema.js'; import { type MetadataLock, type MetadataLockOptions } from './metadata-lock.js'; export interface VercelMetadataStoreOptions { repoKey: string; provider?: string; stateHome?: string; } export interface VercelMetadataStore { readonly path: string; readonly lockPath: string; read(): Promise; write(metadata: VercelMetadataInput): Promise; remove(): Promise; acquireLock(options?: MetadataLockOptions): Promise; withLock(operation: () => Promise, options?: MetadataLockOptions): Promise; } export declare function createVercelMetadataStore(options: VercelMetadataStoreOptions): VercelMetadataStore; export interface VercelScopeMetadataStore { readonly path: string; readonly lockPath: string; read(): Promise; write(metadata: VercelScopeMetadataInput): Promise; remove(): Promise; acquireLock(options?: MetadataLockOptions): Promise; withLock(operation: () => Promise, options?: MetadataLockOptions): Promise; } export interface VercelBranchMetadataStore { readonly path: string; readonly lockPath: string; readonly repoKey: string; readonly branch: string; read(): Promise; write(metadata: VercelBranchMetadataInput): Promise; remove(): Promise; acquireLock(options?: MetadataLockOptions): Promise; withLock(operation: () => Promise, options?: MetadataLockOptions): Promise; } export declare function createVercelScopeMetadataStore(options: VercelMetadataStoreOptions): VercelScopeMetadataStore; export declare function createVercelBranchMetadataStore(options: VercelMetadataStoreOptions & { branch: string; }): VercelBranchMetadataStore;