export type SelectionId = string | number;
export interface SelectionChange {
    readonly previous: readonly SelectionId[];
    readonly current: readonly SelectionId[];
}
export type SelectionListener = (change: SelectionChange) => void;
export declare class Selection {
    private readonly ids;
    private readonly listeners;
    current(): readonly SelectionId[];
    has(id: SelectionId): boolean;
    set(ids: readonly SelectionId[]): void;
    add(id: SelectionId): void;
    remove(id: SelectionId): void;
    clear(): void;
    subscribe(listener: SelectionListener): () => void;
    prune(alive: (id: SelectionId) => boolean): void;
    private replace;
}
//# sourceMappingURL=Selection.d.ts.map