UNPKG

@whisklabs/grpc

Version:

gRPC generator and http library for typescript

12 lines (11 loc) 867 B
interface OneofWrapper<T> { item: T; } interface Oneof<T = unknown> { oneof?: T; value?: unknown; } export declare function oneof<T extends Oneof<unknown>, TValue extends string, Result>(base: T | undefined, key: (TValue extends T['oneof'] ? TValue : T['oneof']) | undefined, fn: ((v: OneofWrapper<Extract<T, Oneof<TValue>>>['item']['value']) => Result) | undefined): Result | undefined; export declare function oneof<T extends Oneof<unknown>, TValue extends string, Result>(base?: T | undefined, key?: (TValue extends T['oneof'] ? TValue : T['oneof']) | undefined): OneofWrapper<Extract<T, Oneof<TValue>>>['item']['value'] | undefined; export declare const oneis: <T extends Oneof<unknown>, TValue extends string>(base?: T | undefined, key?: (TValue extends T["oneof"] ? TValue : T["oneof"]) | undefined) => base is Extract<T, Oneof<TValue>>; export {};