import { t } from '../../common';
declare type S = t.ITypedSheet | t.INsUri | string;
export declare class SheetPool implements t.ISheetPool {
    static create: () => t.ISheetPool;
    private constructor();
    dispose(): void;
    private readonly _dispose$;
    private _items;
    readonly dispose$: t.Observable<void>;
    get isDisposed(): boolean;
    get count(): number;
    get sheets(): {
        [ns: string]: t.ITypedSheet<{
            [x: string]: unknown;
        }>;
    };
    exists(sheet: S): boolean;
    sheet<T>(sheet: S): t.ITypedSheet<T> | undefined;
    add(sheet: t.ITypedSheet, options?: {
        parent?: S;
    }): this;
    remove(sheet: S): this;
    children(sheet: S): t.ITypedSheet<{
        [x: string]: unknown;
    }>[];
    private throwIfDisposed;
    private ns;
}
export {};
