import { PddlSyntaxNode } from './PddlSyntaxNode';
import { PddlTokenType } from './PddlTokenizer';
export declare class PddlStructure {
    static readonly DOMAIN = "domain";
    static readonly REQUIREMENTS = ":requirements";
    static readonly TYPES = ":types";
    static readonly CONSTANTS = ":constants";
    static readonly PREDICATES = ":predicates";
    static readonly FUNCTIONS = ":functions";
    static readonly CONSTRAINTS = ":constraints";
    static readonly PDDL_DOMAIN_SECTIONS: string[];
    static readonly DERIVED = ":derived";
    static readonly ACTION = ":action";
    static readonly DURATIVE_ACTION = ":durative-action";
    static readonly JOB = ":job";
    static readonly PROCESS = ":process";
    static readonly EVENT = ":event";
    static readonly PDDL_DOMAIN_STRUCTURES: string[];
    static readonly PROBLEM = "problem";
    static readonly PROBLEM_DOMAIN = ":domain";
    static readonly OBJECTS = ":objects";
    static readonly INIT = ":init";
    static readonly GOAL = ":goal";
    static readonly METRIC = ":metric";
    static readonly PDDL_PROBLEM_SECTIONS: string[];
    static readonly PARAMETERS = ":parameters";
    static readonly PRECONDITION = ":precondition";
    static readonly EFFECT = ":effect";
    static readonly PDDL_ACTION_SECTIONS: string[];
    static readonly DURATION = ":duration";
    static readonly CONDITION = ":condition";
    static readonly PDDL_DURATIVE_ACTION_SECTIONS: string[];
    static findPrecedingSection(newSectionName: string, defineNode: PddlSyntaxNode, supportedSections: string[]): PddlSyntaxNode;
    /**
     * Determines which PDDL sections/keywords/structures are allowed at the currentNode
     * @param siblingReferenceNode node for which siblings are retrieved
     * @param currentNode node that is used to split the sibling nodes to before/after
     * @param siblingType to filter the siblings by type
     * @param allSupportedSections all supported ordered PDDL sections
     * @param allSupportedStructures additional PDDL structures (e.g. action/durative-action/process/effect/derived)
     */
    static getSupportedSectionsHere(siblingReferenceNode: PddlSyntaxNode, currentNode: PddlSyntaxNode, siblingType: PddlTokenType, allSupportedSections: string[], allSupportedStructures: string[]): string[];
    static stripBracket(node: PddlSyntaxNode): string;
    static getPrecedingSections(newSectionName: string, supportedSections: string[]): string[];
    static getFollowingSections(newSectionName: string, supportedSections: string[]): string[];
    static getPrecedingKeywordOrSelf(node: PddlSyntaxNode): PddlSyntaxNode;
}
