import { DocumentPositionResolver } from "../DocumentPositionResolver";
import { PddlSyntaxTree } from "./PddlSyntaxTree";
import { PddlExtensionContext } from "../PddlExtensionContext";
import { ProblemInfo, TimedVariableValue, VariableValue, SupplyDemand, Metric } from "../ProblemInfo";
import { PddlSyntaxNode } from "./PddlSyntaxNode";
import { PddlFileParser } from "./PddlFileParser";
import { URI } from "vscode-uri";
/**
 * Planning Problem parser.
 */
export declare class PddlProblemParser extends PddlFileParser<ProblemInfo> {
    private problemPreParser;
    private problemPattern;
    constructor(context?: PddlExtensionContext);
    static parseText(problemText: string, fileNameOrIdentifier?: URI, version?: number): Promise<ProblemInfo | undefined>;
    tryParse(fileUri: URI, fileVersion: number, fileText: string, syntaxTree: PddlSyntaxTree, positionResolver: DocumentPositionResolver): Promise<ProblemInfo | undefined>;
    getProblemStructure(problemInfo: ProblemInfo): void;
    /**
     * Parses problem :init section.
     * @param initNode init syntax node
     */
    parseInitSection(initNode: PddlSyntaxNode): [TimedVariableValue[], SupplyDemand[]];
    parseInit(bracket: PddlSyntaxNode): TimedVariableValue | undefined;
    parseVariableValue(node: PddlSyntaxNode): VariableValue | undefined;
    parseSupplyDemand(node: PddlSyntaxNode): SupplyDemand | undefined;
    parseMetrics(defineNode: PddlSyntaxNode, positionResolver: DocumentPositionResolver): Metric[];
}
