import { ChangeTree } from "../changes/ChangeTree";
import { SchemaDecoderCallbacks } from "../Schema";
declare type K = number;
export declare class SetSchema<V = any> implements SchemaDecoderCallbacks {
    protected $changes: ChangeTree;
    protected $items: Map<number, V>;
    protected $indexes: Map<number, number>;
    protected $refId: number;
    onAdd?: (item: V, key: number) => void;
    onRemove?: (item: V, key: number) => void;
    onChange?: (item: V, key: number) => void;
    static is(type: any): boolean;
    constructor(initialValues?: Array<V>);
    add(value: V): number | false;
    entries(): IterableIterator<[number, V]>;
    delete(item: V): boolean;
    clear(isDecoding?: boolean): void;
    has(value: V): boolean;
    forEach(callbackfn: (value: V, key: K, collection: SetSchema<V>) => void): void;
    values(): IterableIterator<V>;
    get size(): number;
    protected setIndex(index: number, key: number): void;
    protected getIndex(index: number): number;
    protected getByIndex(index: number): V;
    protected deleteByIndex(index: number): void;
    toArray(): V[];
    toJSON(): V[];
    clone(isDecoding?: boolean): SetSchema<V>;
    triggerAll(): void;
}
export {};
