import { ProblemInfo } from './ProblemInfo';
import { PlanStep } from './PlanStep';
import { HappeningType } from './HappeningsInfo';
import { DomainInfo } from './DomainInfo';
export declare class Plan {
    readonly steps: PlanStep[];
    readonly domain?: DomainInfo | undefined;
    readonly problem?: ProblemInfo | undefined;
    readonly now?: number | undefined;
    readonly helpfulActions?: HelpfulAction[] | undefined;
    private _makespan;
    statesEvaluated?: number;
    private _metric?;
    constructor(steps: PlanStep[], domain?: DomainInfo | undefined, problem?: ProblemInfo | undefined, now?: number | undefined, helpfulActions?: HelpfulAction[] | undefined);
    /**
     * Copy constructor for re-constructing the plan from a serialized form.
     * @param plan serialized plan
     */
    static clone(plan: Plan): Plan;
    /** @deprecated use `metric` */
    get cost(): number;
    /** @deprecated use `metric` */
    set cost(metric: number);
    get metric(): number;
    set metric(metric: number);
    get makespan(): number;
    isMetricDefined(): boolean;
    /** @deprecated use isMetricDefined */
    isCostDefined(): boolean;
    /**
     * Returns true if any helpful actions were specified.
     */
    hasHelpfulActions(): boolean;
    getText(): string;
}
export interface HelpfulAction {
    actionName: string;
    kind: HappeningType;
}
