import type { Writable } from "stream";
import type { ImageOrContainer } from "../../container";
import type { ContainerCache } from "../../containerCache";
import type { FileInImage } from "../../fileInImage";
export interface ABPartitionsGrubPartitionOptions {
    grubDiskDevice?: string;
    grubEnvPartitionIndex: number;
    grubEnvPath?: string;
    grubExtraConfig?: string;
    grubSourceImage: string;
    grubSourcePath?: string;
    grubTimeout?: number;
    linuxDiskDevice?: string;
    rootPartitionAIndex: number;
    rootPartitionBIndex: number;
    rootPartitionGrubCfg?: string;
    squashfsToolsSource?: ImageOrContainer;
    apkCache?: string;
    containerCache?: ContainerCache;
    logger?: Writable;
}
export declare const abpartitionsGrubPartition: ({ grubDiskDevice, grubEnvPartitionIndex, grubEnvPath, grubExtraConfig, grubSourceImage, grubSourcePath, grubTimeout, linuxDiskDevice, rootPartitionAIndex, rootPartitionBIndex, rootPartitionGrubCfg, squashfsToolsSource, apkCache, containerCache, logger, }: ABPartitionsGrubPartitionOptions) => Promise<FileInImage>;
export interface ABPartitionsGrubEnvPartitionOptions {
    grubSourceImage: string;
    containerCache?: ContainerCache;
    logger?: Writable;
}
export declare const abpartitionsGrubEnvPartition: ({ grubSourceImage, containerCache, logger, }: ABPartitionsGrubEnvPartitionOptions) => Promise<FileInImage>;
export interface ABPartitionsGrubenvAndEfiPartitionOptions {
    efiPartitionSize: number;
    grubDiskDevice?: string;
    grubEnvPath?: string;
    grubPartitionIndex: number;
    grubSourceImage: string;
    mtoolsSource?: ImageOrContainer;
    useEfi?: boolean;
    containerCache?: ContainerCache;
    apkCache?: string;
    logger?: Writable;
}
export declare const abpartitionsGrubenvAndEfiPartition: ({ efiPartitionSize, grubDiskDevice, grubEnvPath, grubPartitionIndex, grubSourceImage, mtoolsSource, useEfi, containerCache, apkCache, logger, }: ABPartitionsGrubenvAndEfiPartitionOptions) => Promise<FileInImage>;
export interface ABPartitionsBiosPartitionOptions {
    grubDiskDevice?: string;
    grubPartitionIndex: number;
    grubSourceImage: string;
    containerCache?: ContainerCache;
    apkCache?: string;
    logger?: Writable;
}
export declare const abpartitionsBiosPartition: ({ grubDiskDevice, grubPartitionIndex, grubSourceImage, containerCache, apkCache, logger, }: ABPartitionsBiosPartitionOptions) => Promise<{
    boot: FileInImage;
    core: FileInImage;
}>;
export interface ABPartitionsDiskOptions {
    biosBootPartitionSize?: number;
    bootType?: "bios" | "efi" | "both";
    efiPartitionSize?: number;
    grubDiskDevice?: string;
    grubEnvPath?: string;
    grubExtraConfig?: string;
    grubSourceImage?: string;
    grubSourcePath?: string;
    grubTimeout?: number;
    linuxDiskDevice?: string;
    mtoolsSource?: ImageOrContainer;
    rootPartition?: FileInImage;
    rootPartitionGrubCfg?: string;
    rootPartitionSize: number;
    squashfsToolsSource?: ImageOrContainer;
    apkCache?: string;
    containerCache?: ContainerCache;
    logger?: Writable;
}
export declare const abpartitionsDisk: ({ biosBootPartitionSize, bootType, efiPartitionSize, grubDiskDevice, grubEnvPath, grubExtraConfig, grubSourceImage, grubSourcePath, grubTimeout, linuxDiskDevice, mtoolsSource, rootPartition, rootPartitionGrubCfg, rootPartitionSize, squashfsToolsSource, apkCache, containerCache, logger, }: ABPartitionsDiskOptions) => Promise<FileInImage>;
