import { ContractDefinition } from 'solidity-ast';
import { NodeType, NodeTypeMap } from 'solidity-ast/node';
import { SolcOutput } from './solc/input-output';
import { NODEINFO } from 'solidity-ast/utils';
export declare class ASTResolver {
    readonly output: SolcOutput;
    readonly exclude?: ((source: string) => boolean) | undefined;
    private nodeInfoResolver;
    constructor(output: SolcOutput, exclude?: ((source: string) => boolean) | undefined);
    resolveScope(id: number): NODEINFO | undefined;
    resolveContract(id: number): ContractDefinition | undefined;
    resolveNode<T extends NodeType>(nodeType: T, id: number, doThrows?: boolean): NodeTypeMap[T] | undefined;
    tryResolveNode<T extends NodeType>(nodeType: T, id: number, doThrows?: boolean): NodeTypeMap[T] | undefined;
}
export declare class ASTResolverError extends Error {
    constructor(nodeType: NodeType | NodeType[]);
}
//# sourceMappingURL=ast-resolver.d.ts.map