export interface MessageBase { messageType: MessageType; messagePayload: MessagePayload; } export declare type FunctionBrand = keyof BrandedFunctionResult> = Pick, SomeBrandKey>; declare type BrandedFunction = (...args: Array) => Promise | object; declare type BrandedFunctionResult = ReturnType extends Promise ? SomeResult : ReturnType; export declare type FunctionResult) => Promise | any> = ReturnType extends Promise ? SomeResult : ReturnType; export declare type Optional = { [Key in SomeKey]?: SomeObject[Key]; } & Pick>; export declare type PromiseResult> = SomePromise extends Promise ? Result : never; export declare type DistributiveOmit = SomeObject extends SomeObject ? Omit : never; export {};