import { AdaptElement, AnyProps, BuildData, GoalStatus, ObserveForStatus, WaitStatus } from "@adpt/core";
import { Kind, Metadata, ResourceProps, Spec } from "./common";
interface MetadataInRequest extends Metadata {
    name: string;
}
export interface ResourceInfo {
    kind: Kind;
    apiName: string;
    deployedWhen: (statusObj: unknown, goalStatus: GoalStatus) => WaitStatus;
    statusQuery?: (props: ResourceProps, observe: ObserveForStatus, buildData: BuildData) => any | Promise<any>;
}
export declare function getResourceInfo(kind: string): ResourceInfo;
export declare function registerResourceKind(info: ResourceInfo): void;
export interface Manifest {
    apiVersion: "v1" | "v1beta1" | "v1beta2";
    kind: Kind;
    metadata: MetadataInRequest;
    spec: Spec;
}
export declare const resourceIdToName: (elemKey: string, elemID: string, deployID: string) => string;
export declare function resourceElementToName(elem: AdaptElement<AnyProps>, deployID: string): string;
export declare function makeManifest(elem: AdaptElement<ResourceProps>, deployID: string): Manifest;
export {};
//# sourceMappingURL=manifest_support.d.ts.map