export type RuntimeTipo = 'node' | 'deno' | 'bun' | 'browser';
export interface RuntimeInfo {
    tipo: RuntimeTipo;
    versao: string;
}
export interface RuntimeFileSystem {
    readFile(caminho: string, encoding?: string): Promise<string>;
    readFileSync(caminho: string, encoding?: string): string;
    writeFile(caminho: string, conteudo: string): Promise<void>;
    writeFileSync(caminho: string, conteudo: string): void;
    readdir(caminho: string): Promise<string[]>;
    readdirSync(caminho: string): string[];
    mkdir(caminho: string, opcoes?: {
        recursive?: boolean;
    }): Promise<void>;
    mkdirSync(caminho: string, opcoes?: {
        recursive?: boolean;
    }): void;
    statSync(caminho: string): {
        isFile(): boolean;
        isDirectory(): boolean;
        size: number;
    };
    existsSync(caminho: string): boolean;
    access(caminho: string, mode?: number): Promise<void>;
}
export interface RuntimePath {
    join(...partes: string[]): string;
    resolve(...partes: string[]): string;
    basename(caminho: string, ext?: string): string;
    dirname(caminho: string): string;
    extname(caminho: string): string;
    relative(de: string, para: string): string;
    sep: string;
}
export interface RuntimeProcess {
    cwd(): string;
    chdir(diretorio: string): void;
    env: Record<string, string | undefined>;
    exit(code?: number): never;
    argv: string[];
    on(evento: string, listener: (...args: unknown[]) => void): void;
    memoryUsage?(): {
        rss: number;
        heapTotal: number;
        heapUsed: number;
    };
    uptime?(): number;
}
export interface RuntimeAdapter {
    readonly tipo: RuntimeTipo;
    readonly info: RuntimeInfo;
    readonly fs: RuntimeFileSystem;
    readonly path: RuntimePath;
    readonly process: RuntimeProcess;
}
//# sourceMappingURL=runtime.d.ts.map