interface Tuple { first: A; second: B; } export declare function pair(first: A, second: B): Tuple; export declare function first(tuple: Tuple): A; export declare function second(tuple: Tuple): B; export declare function mapFirst(func: (val: A) => X, tuple: Tuple): Tuple; export declare function mapSecond(func: (val: B) => X, tuple: Tuple): Tuple; export declare function mapBoth(firstFunc: (val: A) => X, secondFunc: (val: B) => Y, tuple: Tuple): Tuple; export {};