import Adapt, { AdaptElement, BuildData, ChangeType, FinalDomElement, ObserveForStatus } from "@adpt/core";
import { Action, ActionContext, ShouldAct } from "../action";
import { ResourceProps } from "./common";
import { Manifest } from "./manifest_support";
/**
 * Type assertion to see if an element is both a {@link k8s.Resource | Resource}
 * and a {@link @adpt/core#FinalElement | FinalElement}
 *
 * @param e - element to test
 * @returns `true` if e is both a FinalElement and a {@link k8s.Resource | Resource}, `false` otherwise
 *
 * @public
 */
export declare function isResourceFinalElement(e: AdaptElement): e is FinalDomElement<ResourceProps & Adapt.BuiltinProps>;
/**
 * Primitive Component recognized by the k8s plugin to represent resources
 * @public
 */
export declare class Resource extends Action<ResourceProps> {
    manifest_: Manifest;
    constructor(props: ResourceProps);
    validate(): "Resource elements cannot have children" | undefined;
    shouldAct(op: ChangeType, ctx: ActionContext): Promise<ShouldAct>;
    action(op: ChangeType, ctx: ActionContext): Promise<void>;
    deployedWhen: (goalStatus: Adapt.GoalStatus, helpers: Adapt.DeployHelpers) => Promise<true | Adapt.Waiting | Adapt.Waiting[]>;
    status(observe: ObserveForStatus, buildData: BuildData): Promise<any>;
    private mountedElement;
    private manifest;
}
//# sourceMappingURL=Resource.d.ts.map