import { ContractDefinition } from 'solidity-ast';
import { ASTDereferencerError, ExtendedNodeType, ExtendedNodeTypeMap } from 'solidity-ast/utils';
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;
    private deref;
    constructor(output: SolcOutput, exclude?: ((source: string) => boolean) | undefined);
    resolveContract(id: number): ContractDefinition | undefined;
    resolveNode<T extends ExtendedNodeType>(nodeType: T, id: number): ExtendedNodeTypeMap[T];
    tryResolveNode<T extends NodeType>(nodeType: T, id: number): NodeTypeMap[T] | undefined;
}
export declare const ASTResolverError: typeof ASTDereferencerError;
//# sourceMappingURL=ast-resolver.d.ts.map