import type { Slice } from "@ton/core"; import { Cell } from "@ton/core"; import type { Instr } from "./instr-gen"; import * as c from "./constructors"; import { CodeBuilder } from "./builder"; export declare enum Hash { SHA256 = 0, SHA512 = 1, BLAKE2B = 2, KECCAK256 = 3, KECCAK512 = 4 } export type Loc = { readonly file: string; readonly line: number; }; export declare const Loc: (file: string, line: number) => { file: string; line: number; }; export type Store = (b: CodeBuilder, t: T) => void; export type Load = (s: Slice) => T; export type Type = { readonly store: Store; readonly load: Load; }; export declare function uint(bits: number): Type; export declare const int: (bits: number) => Type; export type Code = Raw | Instructions; export type Raw = { readonly $: "Raw"; readonly slice: Slice; }; export type Instructions = { readonly $: "Instructions"; readonly instructions: Instr[]; }; export declare const rawCode: (slice: Slice) => Raw; export declare const code: (instructions: Instr[]) => Instructions; export declare const decompiledCode: (instructions: Instr[]) => Instructions; export declare const codeSlice: (refs: Type, bits: Type) => Type; export declare const refCodeSlice: Type; export declare const inlineCodeSlice: (bits: Type) => Type; export declare const slice: (refs: Type | number, bits: Type, pad: number) => Type; export type DecompiledMethod = { readonly $: "DecompiledMethod"; readonly id: number; readonly instructions: Instr[]; }; export declare const decompiledMethod: (id: number, instructions: Instr[]) => DecompiledMethod; export type Dict = RawDict | DecompiledDict; export type RawDict = { readonly $: "RawDict"; readonly slice: Slice; }; export type DecompiledDict = { readonly $: "DecompiledDict"; readonly methods: DecompiledMethod[]; }; export declare const rawDict: (slice: Slice) => RawDict; export declare const decompiledDict: (methods: DecompiledMethod[]) => DecompiledDict; export declare const dictMap: (mapping: Map) => DecompiledDict; export declare const dictionary: (keyLength: number) => Type; export declare const dictpush: Type<[number, Dict]>; export declare const debugstr: Type; export declare const refs: (count: number) => number; export declare const control: Type; export declare const plduzArg: Type; export declare const tinyInt: Type; export declare const largeInt: Type; export type RunVmArg = number; export declare const runvmArg: Type; export declare const minusOne: Type; export declare const s1: Type; export declare const setcpArg: Type; export declare const delta: (n: number, ty: Type) => Type; export declare const hash: Type; export declare const PSEUDO_PUSHSLICE: Type; export declare const PSEUDO_PUSHREF: Type; export declare const PSEUDO_EXOTIC: Type; export declare const hex: (value: string) => Slice; export declare const bin: (value: string) => Slice; export declare const boc: (value: string) => Slice; export declare const exoticCellBody: (value: string) => Cell; export type ExoticCell = DefaultExoticCell | LibraryCell; export type DefaultExoticCell = { readonly $: "DefaultExoticCell"; readonly cell: Cell; }; export declare const DefaultExoticCell: (cell: Cell) => DefaultExoticCell; export type LibraryCell = { readonly $: "LibraryCell"; readonly data: Slice; }; export declare const LibraryCell: (data: Slice) => LibraryCell; export declare const exotic: Type;