import { OutputInstance } from "../index"; import { Resource } from "../resource"; /** * {@link ResolvedResource} is a {@link Resource} with all fields containing * {@link Output} values fully resolved. */ export declare type ResolvedResource = Omit, "urn" | "getProvider">; export declare type Resolved = T extends Promise ? ResolvedSimple : T extends OutputInstance ? ResolvedSimple : ResolvedSimple; declare type primitive = string | number | boolean | undefined | null; declare type ResolvedSimple = T extends primitive ? T : T extends Array ? ResolvedArray : T extends Function ? never : T extends object ? ResolvedObject : never; declare type ResolvedArray = Array>; declare type ResolvedObject = ModifyOptionalProperties<{ [P in keyof T]: Resolved; }>; declare type RequiredKeys = { [P in keyof T]: undefined extends T[P] ? never : P; }[keyof T]; declare type OptionalKeys = { [P in keyof T]: undefined extends T[P] ? P : never; }[keyof T]; declare type ModifyOptionalProperties = { [P in RequiredKeys]: T[P]; } & { [P in OptionalKeys]?: T[P]; }; export {};