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