import type { Context } from "./context.js"; import { Scope as _Scope } from "./scope.js"; export declare const PROVIDERS: Map; export type ResourceID = string; export type ResourceFQN = string; export type ResourceKind = string; export interface ProviderOptions { /** * If true, the resource will be updated even if the inputs have not changed. */ alwaysUpdate: boolean; } export type ResourceProps = { [key: string]: any; }; export type Provider = F & IsClass & { type: Type; options: Partial | undefined; handler: F; }; export type PendingResource = Promise & { Kind: Kind; ID: ID; FQN: FQN; Seq: Seq; Scope: Scope; signal: () => void; }; export interface Resource { Kind: Kind; ID: ID; FQN: FQN; Scope: Scope; Seq: Seq; } type IsClass = { new (_: never): never; }; type ResourceLifecycleHandler = (this: Context, id: string, props: any) => Promise>; type Handler any> = F | (((this: any, id: string, props?: {}) => never) & IsClass); export declare function Resource(type: Type, fn: F): Handler; export declare function Resource(type: Type, options: Partial, fn: F): Handler; export {}; //# sourceMappingURL=resource.d.ts.map