import ts from 'typescript';
import { Types } from '../../constants';
import { ScriptBuilder } from '../../sb';
import { VisitOptions } from '../../types';
import { Helper } from '../Helper';
declare type ProcessType = (options: VisitOptions) => void;
export interface ForBuiltinTypeHelperOptions {
    readonly type: ts.Type | undefined;
    readonly knownType?: Types;
    readonly single?: boolean;
    readonly singleUndefined?: ProcessType;
    readonly singleFalse?: ProcessType;
    readonly optional?: boolean;
    readonly array: ProcessType;
    readonly map: ProcessType;
    readonly set: ProcessType;
    readonly boolean: ProcessType;
    readonly buffer: ProcessType;
    readonly null: ProcessType;
    readonly number: ProcessType;
    readonly object: ProcessType;
    readonly string: ProcessType;
    readonly symbol: ProcessType;
    readonly undefined: ProcessType;
    readonly arrayStorage: ProcessType;
    readonly mapStorage: ProcessType;
    readonly setStorage: ProcessType;
    readonly error: ProcessType;
    readonly iteratorResult: ProcessType;
    readonly iterable: ProcessType;
    readonly iterableIterator: ProcessType;
    readonly transaction: ProcessType;
    readonly output: ProcessType;
    readonly attribute: ProcessType;
    readonly input: ProcessType;
    readonly account: ProcessType;
    readonly asset: ProcessType;
    readonly contract: ProcessType;
    readonly header: ProcessType;
    readonly block: ProcessType;
    readonly forwardValue: ProcessType;
}
export declare class ForBuiltinTypeHelper extends Helper {
    private readonly type;
    private readonly knownType?;
    private readonly single?;
    private readonly singleUndefined?;
    private readonly singleFalse?;
    private readonly optional?;
    private readonly array;
    private readonly map;
    private readonly set;
    private readonly boolean;
    private readonly buffer;
    private readonly null;
    private readonly number;
    private readonly object;
    private readonly string;
    private readonly symbol;
    private readonly undefined;
    private readonly arrayStorage;
    private readonly mapStorage;
    private readonly setStorage;
    private readonly error;
    private readonly iteratorResult;
    private readonly iterable;
    private readonly iterableIterator;
    private readonly transaction;
    private readonly output;
    private readonly attribute;
    private readonly input;
    private readonly account;
    private readonly asset;
    private readonly contract;
    private readonly header;
    private readonly block;
    private readonly forwardValue;
    constructor({ type, knownType, single, singleUndefined, singleFalse, optional, array, map, set, boolean: processBoolean, buffer, null: processNull, number: processNumber, object, string: processString, symbol, undefined: processUndefined, arrayStorage, mapStorage, setStorage, error, iteratorResult, iterable, iterableIterator, transaction, output, attribute, input, account, asset, contract, header, block, forwardValue, }: ForBuiltinTypeHelperOptions);
    emit(sb: ScriptBuilder, node: ts.Node, options: VisitOptions): void;
    private processKnownType;
}
export {};
