import * as std from "tstl";
import { ICollection } from "../basic/ICollection";
import { CollectionEvent } from "../basic/CollectionEvent";
export declare class VectorBoolean extends std.VectorBoolean implements ICollection<boolean, std.VectorBoolean, std.VectorBoolean.Iterator, std.VectorBoolean.ReverseIterator> {
    /**
     * @hidden
     */
    private dispatcher_;
    clear(): void;
    /**
     * @inheritdoc
     */
    push_back(val: boolean): void;
    /**
     * @hidden
     */
    protected _Insert_by_repeating_val(pos: std.VectorBoolean.Iterator, n: number, val: boolean): std.VectorBoolean.Iterator;
    /**
     * @hidden
     */
    protected _Insert_by_range<InputIterator extends Readonly<std.IForwardIterator<boolean, InputIterator>>>(pos: std.VectorBoolean.Iterator, first: InputIterator, last: InputIterator): std.VectorBoolean.Iterator;
    /**
     * @inheritdoc
     */
    pop_back(): void;
    /**
     * @hidden
     */
    protected _Erase_by_range(first: std.VectorBoolean.Iterator, last: std.VectorBoolean.Iterator): std.VectorBoolean.Iterator;
    /**
     * @inheritDoc
     */
    set(index: number, val: boolean): void;
    /**
     * @inheritDoc
     */
    flip(): void;
    /**
     * @inheritdoc
     */
    refresh(): void;
    /**
     * @inheritdoc
     */
    refresh(it: std.VectorBoolean.Iterator): void;
    /**
     * @inheritdoc
     */
    refresh(first: std.VectorBoolean.Iterator, last: std.VectorBoolean.Iterator): void;
    /**
     * @inheritdoc
     */
    dispatchEvent(event: VectorBoolean.Event): void;
    /**
     * @hidden
     */
    private _Notify_insert(first, last);
    /**
     * @hidden
     */
    private _Notify_erase(first, last);
    /**
     * @inheritdoc
     */
    hasEventListener(type: CollectionEvent.Type): boolean;
    /**
     * @inheritdoc
     */
    addEventListener(type: CollectionEvent.Type, listener: VectorBoolean.Listener): void;
    /**
     * @inheritdoc
     */
    removeEventListener(type: CollectionEvent.Type, listener: VectorBoolean.Listener): void;
}
export declare namespace VectorBoolean {
    type Event = CollectionEvent<boolean, std.VectorBoolean, std.VectorBoolean.Iterator, std.VectorBoolean.ReverseIterator>;
    type Listener = CollectionEvent.Listener<boolean, std.VectorBoolean, std.VectorBoolean.Iterator, std.VectorBoolean.ReverseIterator>;
    const Event: typeof CollectionEvent;
    export import Iterator = std.VectorBoolean.Iterator;
    export import ReverseIterator = std.VectorBoolean.ReverseIterator;
}
