import type { ErrnoCodes, FSHost, FSType } from './fs/types.ts';
import { type NetworkHost } from './network.ts';
interface PyodideFS extends FSHost {
    cwd: () => string;
    stat: (path: string, nofollow?: boolean) => unknown;
    lookupPath: (path: string, options?: {
        parent?: boolean;
        follow?: boolean;
    }) => {
        path: string;
    };
    analyzePath: (path: string) => {
        exists: boolean;
    };
    mkdir: (path: string) => unknown;
    rmdir: (path: string) => void;
    readdir: (path: string) => string[];
    mkdirTree: (path: string, mode?: number) => void;
    writeFile: (path: string, data: Uint8Array | string) => void;
    readFile: (path: string, opts?: {
        encoding?: 'binary' | 'utf8';
    }) => Uint8Array | string;
    unlink?: (path: string) => void;
    mount: (type: FSType, opts: Record<string, unknown>, mountpoint: string) => unknown;
    unmount: (mountpoint: string) => void;
}
export interface PyodideInterface {
    globals: {
        set: (key: string, value: unknown) => void;
        get: (key: string) => unknown;
        delete?: (key: string) => void;
    };
    runPython: (code: string, options?: {
        globals?: unknown;
        filename?: string;
    }) => unknown;
    runPythonAsync: (code: string, options?: {
        globals?: unknown;
        filename?: string;
    }) => Promise<unknown>;
    toPy: (obj: unknown) => unknown;
    isPyProxy?: (obj: unknown) => boolean;
    loadPackagesFromImports?: (code: string, options?: Record<string, unknown>) => Promise<unknown>;
    registerJsModule: (name: string, module: unknown) => void;
    unregisterJsModule?: (name: string) => void;
    setInterruptBuffer?: (buffer: Int32Array | Uint8Array) => void;
    FS: PyodideFS;
    ERRNO_CODES: ErrnoCodes;
    _module?: NetworkHost;
}
/** Whether this runs under Node, where pyodide loads from the installed package. */
export declare function isNode(): boolean;
export declare function loadPyodideRuntime(
/** Distribution knobs a deployment can point at its own prebuilt assets. */
options?: {
    home?: string;
    packageBaseUrl?: string;
    lockFileURL?: string;
    packages?: readonly string[];
}): Promise<PyodideInterface>;
export {};
//# sourceMappingURL=loader.d.ts.map