import { type Dispose, type FeatureId, type GenerationHandoff, type SnapshotState } from '@zhin.js/plugin-runtime'; import type { FeatureProvider } from '@zhin.js/feature-kit'; export type ProjectionState = Omit; export interface ProjectedFeatures { readonly state: SnapshotState; readonly disposers: ReadonlyMap; readonly handoff?: GenerationHandoff; } /** Builds selected Feature projections against one coherent candidate snapshot. */ export declare class FeatureProjector { private readonly providers; constructor(providers: Iterable); project(generation: number, base: ProjectionState, signal: AbortSignal, retained?: ReadonlyMap): Promise; } export declare function composeGenerationHandoffs(...handoffs: readonly (GenerationHandoff | undefined)[]): GenerationHandoff | undefined;