declare type ArgumentTypes = T extends (...args: infer U) => any ? U : never; declare type PromiseType> = T extends Promise ? R : any; declare type Result = { kind: "discarded"; } | { kind: "resolved"; value: T; }; export declare function lastValue Promise>(f: T): (...args: ArgumentTypes) => Promise>>>; export {};