/**
 * UI Bridge Native Design Review Handlers
 *
 * HTTP handlers for the 8 design review endpoints.
 * Maps registered element styles to the web SDK's design data format.
 */
import type { NativeUIBridgeRegistry } from '../core/registry';
import type { APIResponse, HandlerContext } from './types';
import type { ElementDesignData, StateStyles, ResponsiveSnapshot } from '../design/design-types';
/**
 * Design handler interface (subset of NativeServerHandlers)
 */
export interface NativeDesignHandlers {
    getElementStyles: (ctx: HandlerContext) => Promise<APIResponse<ElementDesignData>>;
    getElementStateStyles: (ctx: HandlerContext) => Promise<APIResponse<{
        elementId: string;
        stateStyles: StateStyles[];
    }>>;
    getDesignSnapshot: (ctx: HandlerContext) => Promise<APIResponse<{
        elements: ElementDesignData[];
        timestamp: number;
    }>>;
    getResponsiveSnapshots: (ctx: HandlerContext) => Promise<APIResponse<ResponsiveSnapshot[]>>;
    runDesignAudit: (ctx: HandlerContext) => Promise<APIResponse<unknown>>;
    loadStyleGuide: (ctx: HandlerContext) => Promise<APIResponse<{
        loaded: boolean;
    }>>;
    getStyleGuide: (ctx: HandlerContext) => Promise<APIResponse<unknown>>;
    clearStyleGuide: (ctx: HandlerContext) => Promise<APIResponse<{
        cleared: boolean;
    }>>;
    evaluateQuality: (ctx: HandlerContext) => Promise<APIResponse<unknown>>;
    getQualityContexts: (ctx: HandlerContext) => Promise<APIResponse<Array<{
        name: string;
        description: string;
    }>>>;
    saveBaseline: (ctx: HandlerContext) => Promise<APIResponse<{
        saved: boolean;
        elementCount: number;
    }>>;
    diffBaseline: (ctx: HandlerContext) => Promise<APIResponse<unknown>>;
}
/**
 * Create design review handlers.
 *
 * @param registry - the registered native element registry
 * @param viewportProvider - optional injected viewport getter. Same shape as
 *   the `viewportProvider` consumed by `handlers.ts`/`getPageHealth`. This is
 *   injected by `createServerHandlers` from the `NativeServerConfig` the host
 *   passes to `UIBridgeNativeProvider`/`NativeUIBridgeServer`, which in turn
 *   reads `Dimensions.get('screen')` (or `'window'`). The indirection exists
 *   because `require('react-native')` from this file crashes the host RN
 *   app the moment any design endpoint is invoked: Metro/Hermes raise
 *   `unknownModuleError` past every try/catch and tear down the JS thread.
 *   This was the same latent crash that took out 0.6.3/0.6.4 page-health
 *   handler — the design handlers had it too, just hiding on unused
 *   endpoints until `POST /design/responsive` was first called.
 *
 *   When the injected provider is absent (tests, custom hosts) the design
 *   handlers fall back to `{width:0, height:0}` — the responsive snapshot
 *   degenerates to "zero-dimension viewport" rather than crashing.
 */
export declare function createDesignHandlers(registry: NativeUIBridgeRegistry, viewportProvider?: () => {
    width: number;
    height: number;
}): NativeDesignHandlers;
//# sourceMappingURL=design-handlers.d.ts.map