import type { EffectiveRenderBackend, RenderBackend as RenderBackendWire, RenderBackendConstants } from '../../types/RenderBackendRegistry.js';
import type { RenderPathDefinition } from '../GenericViewport/ViewportArchitectureTypes.js';
export type RenderSurface = 'vtk' | 'cpu';
export type RenderBackendDataKind = 'image' | 'volume';
export interface RenderBackendRenderMode {
    id: string;
    createDefinition?: () => RenderPathDefinition;
}
export interface RenderBackendRenderModes {
    image: RenderBackendRenderMode;
    volume?: RenderBackendRenderMode;
}
export interface RenderBackendDefinition {
    backend: string;
    renderModes: RenderBackendRenderModes;
    surface?: RenderSurface;
}
type RegisterRenderBackendNamedOptions<Name extends keyof RenderBackendConstants> = RenderBackendDefinition & {
    name: Name;
    backend: RenderBackendConstants[Name];
};
type RegisterRenderBackendUnnamedOptions = RenderBackendDefinition & {
    backend: RenderBackendWire | string;
    name?: never;
};
export type RegisterRenderBackendOptions = RegisterRenderBackendNamedOptions<keyof RenderBackendConstants> | RegisterRenderBackendUnnamedOptions;
export declare function registerRenderBackend<Name extends keyof RenderBackendConstants>(options: RegisterRenderBackendNamedOptions<Name>): void;
export declare function registerRenderBackend(options: RegisterRenderBackendUnnamedOptions): void;
export declare function isRegisteredRenderBackend(backend: string): boolean;
export declare function getRenderBackendDefinition(backend: string): Readonly<RenderBackendDefinition> | undefined;
export declare function getRenderModeForBackend(backend: string, kind: RenderBackendDataKind): string;
export declare function getRenderBackendForRenderMode(renderMode: string | undefined): EffectiveRenderBackend | undefined;
export declare function isVolumeRenderMode(renderMode: string | undefined): boolean;
export declare function isImageRenderMode(renderMode: string | undefined): boolean;
export declare function getRenderSurfaceForRenderMode(renderMode: string | undefined): RenderSurface;
export declare function createRegisteredPlanarRenderPaths(): RenderPathDefinition[];
export declare function __resetRenderBackendRegistry(): void;
export {};
