import type { ProgramTypeEnum } from '../types/enums/ProgramTypeEnum';
import type { IConfigurable } from '../types/interfaces/IConfigurable';
import type { IErrorCode } from '../types/interfaces/IErrorCode';
import type { IFunction } from '../types/interfaces/IFunction';
import type { IType } from '../types/interfaces/IType';
import type { JsonAbi } from '../types/interfaces/JsonAbiNew';
import { Configurable } from './configurable/Configurable';
export declare class Abi {
    capitalizedName: string;
    camelizedName: string;
    programType: ProgramTypeEnum;
    filepath: string;
    outputDir: string;
    commonTypesInUse: string[];
    rawContents: JsonAbi;
    hexlifiedBinContents?: string;
    storageSlotsContents?: string;
    types: IType[];
    functions: IFunction[];
    configurables: IConfigurable[];
    errorCodes?: IErrorCode[];
    constructor(params: {
        filepath: string;
        programType: ProgramTypeEnum;
        rawContents: JsonAbi;
        hexlifiedBinContents?: string;
        storageSlotsContents?: string;
        outputDir: string;
    });
    parse(): {
        types: IType[];
        functions: IFunction[];
        configurables: Configurable[];
        errorCodes: import("./errors/ErrorCode").ErrorCode[];
    };
    computeCommonTypesInUse(): void;
}
//# sourceMappingURL=Abi.d.ts.map