import { FileInfo } from "../FileInfo";
import { PddlSyntaxNode } from "./PddlSyntaxNode";
import { DocumentPositionResolver } from "../DocumentPositionResolver";
import { DomainInfo, Action, DurativeAction, Job } from "../DomainInfo";
import { PddlSyntaxTree } from "./PddlSyntaxTree";
import { Variable } from "../language";
import { PddlFileParser } from "./PddlFileParser";
import { URI } from "vscode-uri";
import { SyntaxInjectors } from "../injector/SyntaxInjector";
export interface PddlParserOptions {
    injectors: SyntaxInjectors;
}
/**
 * Planning Domain parser.
 */
export declare class PddlDomainParser extends PddlFileParser<DomainInfo> {
    private readonly injectors;
    constructor(options?: PddlParserOptions);
    tryParse(fileUri: URI, fileVersion: number, fileText: string, syntaxTree: PddlSyntaxTree, positionResolver: DocumentPositionResolver): Promise<DomainInfo | undefined>;
    parse(fileUri: URI, fileVersion: number, fileText: string, domainNode: PddlSyntaxNode, syntaxTree: PddlSyntaxTree, positionResolver: DocumentPositionResolver): DomainInfo | undefined;
    static parseText(domainText: string, fileNameOrIdentifier?: URI, version?: number): DomainInfo | undefined;
    private parseDomainStructure;
    static parseRequirements(defineNode: PddlSyntaxNode, fileInfo: FileInfo): void;
    static parseDerived(defineNode: PddlSyntaxNode, positionResolver: DocumentPositionResolver): Variable[];
    parseActionProcessOrEvent(defineNode: PddlSyntaxNode, positionResolver: DocumentPositionResolver, keyword: string): Action[];
    parseDurativeActions(defineNode: PddlSyntaxNode, positionResolver: DocumentPositionResolver): DurativeAction[];
    parseJob(defineNode: PddlSyntaxNode, positionResolver: DocumentPositionResolver): Job[];
    inject(domainInfo: DomainInfo, positionResolver: DocumentPositionResolver): void;
}
