import Tuple from './Tuple'; export interface Settable { set(key: A, value: B): this; } export interface Gettable { get(key: A): B | undefined; } export interface GenericMap extends GetSettable { has(key: A): boolean; } export declare type GetSettable = Settable & Gettable; export declare type Primitive = boolean | undefined | null | number | string | symbol; export interface Tuple0 extends Tuple { readonly length: 0; } /** Singleton */ export interface Tuple1 extends Tuple { readonly 0: A; readonly length: 1; } /** Pair */ export interface Tuple2 extends Tuple { readonly 0: A; readonly 1: B; readonly length: 2; } /** Triple */ export interface Tuple3 extends Tuple { readonly 0: A; readonly 1: B; readonly 2: C; readonly length: 3; } /** Quadruple */ export interface Tuple4 extends Tuple { readonly 0: A; readonly 1: B; readonly 2: C; readonly 3: D; readonly length: 4; } /** Quintuple */ export interface Tuple5 extends Tuple { readonly 0: A; readonly 1: B; readonly 2: C; readonly 3: D; readonly 4: E; readonly length: 5; } /** Sextuple */ export interface Tuple6 extends Tuple { readonly 0: A; readonly 1: B; readonly 2: C; readonly 3: D; readonly 4: E; readonly 5: F; readonly length: 6; } /** Septuple */ export interface Tuple7 extends Tuple { readonly 0: A; readonly 1: B; readonly 2: C; readonly 3: D; readonly 4: E; readonly 5: F; readonly 6: G; readonly length: 7; } /** Octuple */ export interface Tuple8 extends Tuple { readonly 0: A; readonly 1: B; readonly 2: C; readonly 3: D; readonly 4: E; readonly 5: F; readonly 6: G; readonly 7: H; readonly length: 8; } export declare type CompositeSymbol = { t: T; } & symbol; export declare const CompositeSymbol0: CompositeSymbol<[never]>; export declare type CompositeSymbol1 = CompositeSymbol<[A]>; export declare type CompositeSymbol2 = CompositeSymbol<[A, B]>; export declare type CompositeSymbol3 = CompositeSymbol<[A, B, C]>; export declare type CompositeSymbol4 = CompositeSymbol<[A, B, C, D]>; export declare type CompositeSymbol5 = CompositeSymbol<[A, B, C, D, E]>; export declare type CompositeSymbol6 = CompositeSymbol<[A, B, C, D, E, F]>; export declare type CompositeSymbol7 = CompositeSymbol<[A, B, C, D, E, F, G]>; export declare type CompositeSymbol8 = CompositeSymbol<[A, B, C, D, E, F, G, H]>; export interface Indexable { [i: number]: A; }