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