import type { ProgramTypeEnum } from '../types/enums/ProgramTypeEnum';
import type { IConfigurable } from '../types/interfaces/IConfigurable';
import type { IFunction } from '../types/interfaces/IFunction';
import type { IRawAbi } from '../types/interfaces/IRawAbi';
import type { IType } from '../types/interfaces/IType';
export declare class Abi {
    name: string;
    programType: ProgramTypeEnum;
    filepath: string;
    outputDir: string;
    commonTypesInUse: string[];
    rawContents: IRawAbi;
    hexlifiedBinContents?: string;
    storageSlotsContents?: string;
    types: IType[];
    functions: IFunction[];
    configurables: IConfigurable[];
    constructor(params: {
        filepath: string;
        programType: ProgramTypeEnum;
        rawContents: IRawAbi;
        hexlifiedBinContents?: string;
        storageSlotsContents?: string;
        outputDir: string;
    });
    parse(): {
        types: IType[];
        functions: IFunction[];
        configurables: IConfigurable[];
    };
    computeCommonTypesInUse(): void;
}
//# sourceMappingURL=Abi.d.ts.map