export interface SequenceView<KEY, VAL> {
    forEach: (callback: (el: VAL, index: KEY) => void) => void;
    get: (index: KEY) => VAL;
    map: <NEW_T>(callback: (el: VAL, index: KEY) => NEW_T) => NEW_T[];
    newShadowIterator: () => Iterator<SequenceView<KEY, VAL> | undefined>;
}
export interface ArrayView<EL> extends SequenceView<number, EL> {
}
export interface KeyValueView<EL> extends SequenceView<string, EL> {
}
export declare function newArrayView<EL>(srcArray: EL[]): ArrayView<EL>;
export declare function newKeyValueView<VAL>(srcKeyVals: {
    [key: string]: VAL;
}): KeyValueView<VAL>;
