export type Arch = "x86_64" | "aarch64" | "x86" | "arm" | "wasm32";
export type Os = "linux" | "macos" | "windows" | "freebsd" | "wasi" | "emscripten";
export type Abi = "gnu" | "musl" | "msvc" | "none" | "wasm";
export interface TargetInfo {
    arch: Arch;
    os: Os;
    abi: Abi | undefined;
    pointerSizeBits: 32 | 64;
    triple: string;
}
export interface HostInfo {
    platform: Os;
    arch: Arch;
}
export declare function pointerSizeForArch(arch: Arch): 32 | 64;
export declare function detectHost(): HostInfo;
export declare function hostTarget(): TargetInfo;
export declare function parseTarget(triple: string): TargetInfo;
export declare function clangTriple(target: TargetInfo): string;
export declare function setCurrentTarget(target: TargetInfo): void;
export declare function getCurrentTarget(): TargetInfo;
export declare function targetOsToYoString(os: Os): string;
export declare function targetArchToYoString(arch: Arch): string;
export declare function isTargetWindows(target: TargetInfo): boolean;
export declare function isTargetLinux(target: TargetInfo): boolean;
export declare function isTargetMacos(target: TargetInfo): boolean;
export declare function isTargetMSVC(target: TargetInfo): boolean;
export declare function isTargetWasm(target: TargetInfo): boolean;
export declare function isTargetEmscripten(target: TargetInfo): boolean;
export declare function isTargetStandaloneWasi(target: TargetInfo): boolean;
export declare function isTargetMusl(target: TargetInfo): boolean;
export declare function isTargetPosix(target: TargetInfo): boolean;
