export declare const ELFCLASS32 = 1; export declare const ELFCLASS64 = 2; export declare const ELFDATA2LSB = 1; export declare const ELFDATA2MSB = 2; export declare const EM_386 = 3; export declare const EM_X86_64 = 62; export declare const PT_NULL = 0; export declare const PT_LOAD = 1; export declare const PT_DYNAMIC = 2; export declare const PT_INTERP = 3; export declare const PT_NOTE = 4; export declare const PT_SHLIB = 5; export declare const PT_PHDR = 6; export declare const PT_LOSUNW = 1879048186; export declare const PT_SUNWBSS = 1879048187; export declare const PT_SUNWSTACK = 1879048186; export declare const PT_HISUNW = 1879048191; export declare const PT_LOPROC = 1879048192; export declare const PT_HIPROC = 2147483647; export declare const PF_NONE = 0; export declare const PF_EXEC = 1; export declare const PF_WRITE = 2; export declare const PF_WRITE_EXEC = 3; export declare const PF_READ = 4; export declare const PF_READ_EXEC = 5; export declare const PF_READ_WRITE = 6; export declare const PF_READ_WRITE_EXEC = 7; export declare const SHT_NULL = 0; export declare const SHT_PROGBITS = 1; export declare const SHT_SYMTAB = 2; export declare const SHT_STRTAB = 3; export declare const SHT_RELA = 4; export declare const SHT_HASH = 5; export declare const SHT_DYNAMIC = 6; export declare const SHT_NOTE = 7; export declare const SHT_NOBITS = 8; export declare const SHT_REL = 9; export declare const SHT_SHLIB = 10; export declare const SHT_DYNSYM = 11; export declare const SHT_SUNW_MOVE = 1879048186; export declare const SHT_SUNW_COMDAT = 1879048187; export declare const SHT_SUNW_SYMINFO = 1879048188; export declare const SHT_SUNW_VERDEF = 1879048189; export declare const SHT_SUNW_VERNEED = 1879048190; export declare const SHT_SUNW_VERSYM = 1879048191; export declare const SHT_LOPROC = 1879048192; export declare const SHT_HIPROC = 2147483647; export declare const SHT_LOUSER = 2147483648; export declare const SHT_HIUSER = 4294967295; export declare const SHF_WRITE = 1; export declare const SHF_ALLOC = 2; export declare const SHF_EXECINSTR = 4; export declare const SHF_MASKPROC = 4026531840; /** * Generic Linux ELF ident. */ export declare class EIdent { eiId: Uint8Array; eiClass2: number; eiData: number; eiVersion: number; eiOsabi: number; eiAbiversion: number; eiPad: Uint8Array; eiNident: number; } /** * 32-bit Linux ELF ehdr. */ export declare class Elf32Ehdr { eIdent: EIdent; eType: number; eMachine: number; eVersion: number; eEntry: number; ePhoff: number; eShoff: number; eFlags: number; eEhsize: number; ePhentsize: number; ePhnum: number; eShentsize: number; eShnum: number; eShtrndx: number; } /** * 64-bit Linux ELF ehdr. */ export declare class Elf64Ehdr { eIdent: EIdent; eType: number; eMachine: number; eVersion: number; eEntry: bigint; ePhoff: bigint; eShoff: bigint; eFlags: number; eEhsize: number; ePhentsize: number; ePhnum: number; eShentsize: number; eShnum: number; eShtrndx: number; } /** * 32-bit Linux ELF phdr. */ export declare class Elf32Phdr { pType: number; pOffset: number; pVaddr: number; pPaddr: number; pFilesz: number; pMemsz: number; pFlags: number; pAlign: number; } /** * 64-bit Linux ELF phdr. */ export declare class Elf64Phdr { pType: number; pFlags: number; pOffset: bigint; pVaddr: bigint; pPaddr: bigint; pFilesz: bigint; pMemsz: bigint; pAlign: bigint; } /** * 32-bit Linux ELF shdr. */ export declare class Elf32Shdr { shName: number; shType: number; shFlags: number; shAddr: number; shOffset: number; shSize: number; shLink: number; shInfo: number; shAddralign: number; shEntsize: number; data: ArrayBuffer; /** * Get the section data file size. * * @returns File size. */ get fileSize(): number; } /** * 64-bit Linux ELF shdr. */ export declare class Elf64Shdr { shName: number; shType: number; shFlags: bigint; shAddr: bigint; shOffset: bigint; shSize: bigint; shLink: number; shInfo: number; shAddralign: bigint; shEntsize: bigint; data: ArrayBuffer; /** * Get the section data file size. * * @returns File size. */ get fileSize(): bigint; } /** * 32-bit Linux ELF format. */ export declare class Elf32 { elfHeader: Elf32Ehdr; programHeaders: Elf32Phdr[]; sectionHeaders: Elf32Shdr[]; /** * Get format. * * @returns The number of bits. */ get bits(): 32; /** * Get endianness. * * @returns True if little endian, else false. */ get littleEndian(): boolean; /** * Get total encode size. * * @returns Total size. */ get size(): number; /** * Decode from DataView. * * @param data Target DataView. * @param offset The offset. */ decode(data: Readonly, offset?: number): void; /** * Encode into DataView. * * @param data Target DataView. * @param offset The offset. */ encode(data: DataView, offset?: number): void; /** * Encoded as ArrayBuffer. * * @returns ArrayBuffer. */ encoded(): ArrayBuffer; } /** * 64-bit Linux ELF format. */ export declare class Elf64 { elfHeader: Elf64Ehdr; programHeaders: Elf64Phdr[]; sectionHeaders: Elf64Shdr[]; /** * Get format. * * @returns The number of bits. */ get bits(): 64; /** * Get endianness. * * @returns True if little endian, else false. */ get littleEndian(): boolean; /** * Get total encode size. * * @returns Total size. */ get size(): number; /** * Decode from DataView. * * @param data Target DataView. * @param offset The offset. */ decode(data: Readonly, offset?: number): void; /** * Encode into DataView. * * @param data Target DataView. * @param offset The offset. */ encode(data: DataView, offset?: number): void; /** * Encoded as ArrayBuffer. * * @returns ArrayBuffer. */ encoded(): ArrayBuffer; } /** * Decode based on format. * * @param data Data view. * @param offset Offset in data view. * @returns An instance. */ export declare function decode(data: Readonly, offset?: number): Elf32 | Elf64;