interface CompileResult {
    ok: boolean;
    output: string;
    outFile?: string;
}
interface CompileOptions {
    outFile?: string;
}
/**
 * Resolves the path to the tl binary.
 * Respects TL_BINARY env override, then falls back to the bundled binary.
 */
declare function getTlBinary(): string;
/**
 * Type-checks a .tl file without emitting output.
 */
declare function check(filePath: string): Promise<CompileResult>;
/**
 * Compiles a .tl file to a .lua file suitable for cfxlua (FiveM).
 *
 * Uses `tl gen` which strips all type annotations and outputs plain Lua 5.4.
 * CfxLua-specific extensions (vectors, backtick hashes) are runtime globals
 * and don't affect the compilation step.
 */
declare function compile(filePath: string, options?: CompileOptions): Promise<CompileResult>;
/**
 * Builds a project by reading tlconfig.lua and calling `tl gen -o` per file,
 * mirroring the source_dir → build_dir structure.
 */
declare function build(cwd?: string): Promise<CompileResult>;

export { type CompileOptions, type CompileResult, build, check, compile, getTlBinary };
