/**
 * Parses Hunk data in Amiga executable file
 *
 * @see {@link http://amiga-dev.wikidot.com/file-format:hunk}
 */
/// <reference types="node" />
export interface Hunk {
    index: number;
    hunkType: HunkType;
    /** Byte offset of this hunk in executable file */
    fileOffset: number;
    /** Type of memory to allocate */
    memType: MemoryType;
    /** Number of bytes to allocate */
    allocSize: number;
    /** Relocation information */
    reloc32: RelocInfo32[];
    /** Symbols defined in this hunk (if exported) */
    symbols: SourceSymbol[];
    /** Offsets of source files / lines (if exported in Line Debug data) */
    lineDebugInfo: DebugInfo[];
    /** Size of code/data binary in this hunk or to allocate in case of BSS */
    dataSize?: number;
    /** Byte offset of code/data binary relative to this hunk */
    dataOffset?: number;
    /** code/data binary */
    data?: Buffer;
}
export declare enum HunkType {
    CODE = "CODE",
    DATA = "DATA",
    BSS = "BSS"
}
export declare enum MemoryType {
    ANY = "ANY",
    CHIP = "CHIP",
    FAST = "FAST"
}
export interface RelocInfo32 {
    target: number;
    offsets: number[];
}
export interface SourceSymbol {
    name: string;
    offset: number;
}
export interface SourceLine {
    line: number;
    offset: number;
}
export interface DebugInfo {
    sourceFilename: string;
    baseOffset: number;
    lines: SourceLine[];
}
/**
 * Extract an array of Hunks from an Amiga executable file
 */
export declare function parseHunksFromFile(filename: string): Promise<Hunk[]>;
/**
 * Extract an array of Hunks from Amiga executable file data
 */
export declare function parseHunks(contents: Buffer): Hunk[];
