serde-ts/dist/de/interface.d.ts

59 lines
2.8 KiB
TypeScript

import { Nullable } from '../utils';
export interface IMapAccess {
nextKeySeed<T, K extends Deserialize<T>>(seed: K): IteratorResult<T>;
nextValueSeed<T, V extends Deserialize<T>>(seed: V): IteratorResult<T>;
nextEntrySeed<TK, TV, K extends Deserialize<TK>, V extends Deserialize<TV>>(kseed: K, vseed: V): IteratorResult<[TK, TV]>;
nextKey<T>(): IteratorResult<T>;
nextValue<V>(): IteratorResult<V>;
nextEntry<K, V>(): IteratorResult<[K, V]>;
sizeHint?(): Nullable<number>;
entries<T, K extends Deserialize<T>>(seed?: K): Iterator<T>;
values<T, V extends Deserialize<T>>(seed?: V): Iterator<T>;
entries<TK, TV, K extends Deserialize<TK>, V extends Deserialize<TV>>(kseed: K, vseed: V): Iterator<[TK, TV]>;
[Symbol.iterator]<K, V>(): Iterator<[K, V]>;
}
export declare abstract class MapAccess {
abstract nextKeySeed<T, K extends Deserialize<T>>(seed: K): IteratorResult<T>;
abstract nextValueSeed<T, V extends Deserialize<T>>(seed: V): IteratorResult<T>;
nextEntrySeed<TK, TV, K extends Deserialize<TK>, V extends Deserialize<TV>>(kseed: K, vseed: V): IteratorResult<[TK, TV]>;
abstract nextKey<T>(): IteratorResult<T>;
abstract nextValue<V>(): IteratorResult<V>;
nextEntry<K, V>(): IteratorResult<[K, V]>;
private generate;
keys<T, K extends Deserialize<T>>(seed?: K): Iterator<T>;
values<T, V extends Deserialize<T>>(seed?: V): Iterator<T>;
entries<TK, TV, K extends Deserialize<TK>, V extends Deserialize<TV>>(kseed?: K, vseed?: V): Iterator<[TK, TV]>;
[Symbol.iterator]<K, V>(): Iterator<K, V>;
}
export interface IIterableAccess {
nextElement<T>(): IteratorResult<T>;
sizeHint?(): Nullable<number>;
}
export declare abstract class IterableAccess implements IIterableAccess {
abstract nextElement<T>(): IteratorResult<T>;
}
export interface IVisitor<T> {
visitBoolean(value: boolean): T;
visitNumber(value: number): T;
visitBigInt(value: bigint): T;
visitString(value: string): T;
visitSymbol(value: symbol): T;
visitNull(): T;
visitObject(access: IMapAccess): T;
visitIterable(access: IIterableAccess): T;
}
export interface IDeserializer {
deserializeAny<T>(visitor: Partial<IVisitor<T>>): T;
deserializeBoolean<T>(visitor: Partial<IVisitor<T>>): T;
deserializeNumber<T>(visitor: Partial<IVisitor<T>>): T;
deserializeBigInt<T>(visitor: Partial<IVisitor<T>>): T;
deserializeString<T>(visitor: Partial<IVisitor<T>>): T;
deserializeSymbol<T>(visitor: Partial<IVisitor<T>>): T;
deserializeNull<T>(visitor: Partial<IVisitor<T>>): T;
deserializeObject<T>(visitor: Partial<IVisitor<T>>): T;
deserializeIterable<T>(visitor: Partial<IVisitor<T>>): T;
deserializeFunction<T>(visitor: Partial<IVisitor<T>>): T;
}
export interface Deserialize<T> {
(deserializer: IDeserializer): T;
}