import { Deserialize, IDeserializer, IterableAccess, IVisitor, MapAccess } from './interface';
export declare class ForwardMapAccess extends MapAccess {
    private readonly _keys;
    private readonly _values;
    private kindex;
    private vindex;
    constructor(keys: string[], values: any[]);
    static fromObject(obj: object): ForwardMapAccess;
    nextKeySeed<T, K extends Deserialize<T>>(_seed: K): IteratorResult<T>;
    nextValueSeed<T, V extends Deserialize<T>>(_seed: V): IteratorResult<T>;
    nextKey<T>(): IteratorResult<T>;
    nextValue<V>(): IteratorResult<V>;
}
export declare class ForwardIterableAccess extends IterableAccess {
    private readonly items;
    private index;
    constructor(items: any[]);
    nextElement<T>(): IteratorResult<T>;
}
export declare class Forward implements IDeserializer {
    private readonly value;
    constructor(value: any);
    static with(value: any): Forward;
    deserializeAny<T, V extends IVisitor<T>>(_visitor: V): T;
    deserializeBoolean<T, V extends IVisitor<T>>(visitor: V): T;
    deserializeNumber<T, V extends IVisitor<T>>(visitor: V): T;
    deserializeBigInt<T, V extends IVisitor<T>>(visitor: V): T;
    deserializeString<T, V extends IVisitor<T>>(visitor: V): T;
    deserializeSymbol<T, V extends IVisitor<T>>(visitor: V): T;
    deserializeNull<T, V extends IVisitor<T>>(visitor: V): T;
    deserializeObject<T, V extends IVisitor<T>>(visitor: V): T;
    deserializeIterable<T, V extends IVisitor<T>>(visitor: V): T;
    deserializeFunction<T, V extends IVisitor<T>>(_visitor: V): T;
}