export type AuraColor = string;
export interface ParticleFountainOptions {
    readonly particleCount?: number;
    readonly emissionRate?: number;
    readonly color?: AuraColor;
    readonly colors?: readonly AuraColor[];
}
export interface ParticleFountainScene {
    readonly kind: "aura3d-particle-fountain-scene";
    readonly options: Required<Pick<ParticleFountainOptions, "particleCount" | "emissionRate">> & {
        readonly color: AuraColor;
    };
}
export interface ParticleFountainSceneKit {
    readonly kind: "aura-scene-kit";
    readonly id: "particleFountain";
    readonly nodes: readonly Record<string, unknown>[];
    readonly evidence: readonly string[];
    readonly acceptanceEvidence: readonly string[];
    readonly diagnostics: {
        readonly kind: "aura-scene-kit-diagnostics";
        readonly id: "particleFountain";
        readonly structuralScore: 5;
        readonly problems: readonly string[];
    };
    toAppOptions(): {
        readonly scene: ParticleFountainScene;
        readonly diagnostics: false;
    };
    scene(): ParticleFountainScene;
    customize(next: ParticleFountainOptions): ParticleFountainSceneKit;
}
export interface AuraApp {
    readonly canvas: HTMLCanvasElement;
    readonly scene: ParticleFountainScene;
    readonly backend: "three";
    diagnostics(): {
        readonly backend: "three";
        readonly fps: number;
        readonly drawCalls: number;
        readonly renderSize: readonly [number, number];
        readonly warnings: readonly string[];
        readonly errors: readonly string[];
        readonly renderer: {
            readonly kind: "aura-renderer-diagnostics";
            readonly backend: "three-lean-particle-fountain";
            readonly postprocess: {
                readonly enabled: false;
                readonly actualPasses: readonly [];
            };
        };
    };
    screenshot(): {
        readonly mimeType: "image/png";
        readonly dataUrl: string;
        readonly width: number;
        readonly height: number;
    };
    dispose(): void;
}
export interface AuraCreateAppOptions {
    readonly scene: ParticleFountainScene;
    readonly diagnostics?: boolean;
    readonly pixelRatio?: number;
    readonly autoStart?: boolean;
    readonly resize?: boolean;
}
export type AuraAppTarget = string | HTMLElement | HTMLCanvasElement | null | undefined;
declare global {
    interface Window {
        __AURA3D_ROUTE_READY__?: unknown;
        __ENGINE_READY__?: () => boolean;
        __ENGINE_READOUT__?: () => unknown;
    }
}
export declare const sceneKits: {
    readonly particleFountain: (options?: ParticleFountainOptions) => ParticleFountainSceneKit;
};
export declare function particleFountain(options?: ParticleFountainOptions): ParticleFountainSceneKit;
export declare const ui: {
    readonly html: (selector: string, markup: string) => HTMLElement;
    readonly range: (selector: string) => HTMLInputElement;
    readonly slider: (selector: string, options?: {
        readonly min?: number;
        readonly max?: number;
        readonly value?: number;
        readonly metric?: string;
    }) => HTMLInputElement;
};
export declare function createAuraApp(target: AuraAppTarget, options: AuraCreateAppOptions): AuraApp;
//# sourceMappingURL=particle-fountain-runtime.d.ts.map