import { AIPersistence, AIPersistenceStores } from '../types.js';
type MakePersistence = () => Promise<AIPersistence> | AIPersistence;
/**
 * Methods that are optional on the `RunStore` contract.
 *
 * `findActiveRun` is deliberately NOT here: it is REQUIRED, per the evolution
 * policy in `../types.ts`. It was optional for one release cycle and silently
 * disabled reconnect on every backend that had not caught up.
 */
type OptionalRunStoreMethod = 'listByThread' | 'listReclaimable';
/** Dotted `store.method` key a backend passes to declare an omitted method. */
export type PersistenceConformanceMethodKey = `runs.${OptionalRunStoreMethod}`;
export interface PersistenceConformanceOptions {
    /**
     * Store keys this backend intentionally does not provide. Any store that is
     * absent from the persistence and NOT listed here fails the suite, so a
     * dropped/misconfigured store can never pass silently.
     */
    skip?: Array<keyof AIPersistenceStores>;
    /**
     * OPTIONAL store methods this backend intentionally does not implement, as
     * `'runs.listByThread'` and friends. A method that is absent and NOT listed
     * here fails the suite; a listed one is reported as a skipped case.
     */
    skipMethods?: Array<PersistenceConformanceMethodKey>;
}
/**
 * Register a Vitest suite that validates `makePersistence()` against the full
 * `AIPersistence` contract — every store it provides, and none it declares
 * skipped.
 */
export declare function runPersistenceConformance(name: string, makePersistence: MakePersistence, options?: PersistenceConformanceOptions): void;
export {};
