/**
 * @license
 * Copyright 2026 Amodal Labs, Inc.
 * SPDX-License-Identifier: MIT
 */
import { Hono } from 'hono';
import type { StudioCapability } from '../lib/capabilities.js';
type UnsafeMethod = 'post' | 'put' | 'patch' | 'delete';
type SafeMethod = 'get';
type RouteMethod = SafeMethod | UnsafeMethod;
export type StudioRoutePolicy = {
    capability: StudioCapability;
} | {
    public: true;
    reason: string;
};
export interface StudioRouteRegistration {
    group: string;
    method: Uppercase<RouteMethod>;
    path: string;
    policy: StudioRoutePolicy | null;
}
export interface StudioPolicyRoutes {
    hono: Hono;
    get(path: string, ...handlers: StudioHandler[]): Hono;
    get(path: string, policy: StudioRoutePolicy, ...handlers: StudioHandler[]): Hono;
    post(path: string, policy: StudioRoutePolicy, ...handlers: StudioHandler[]): Hono;
    put(path: string, policy: StudioRoutePolicy, ...handlers: StudioHandler[]): Hono;
    patch(path: string, policy: StudioRoutePolicy, ...handlers: StudioHandler[]): Hono;
    delete(path: string, policy: StudioRoutePolicy, ...handlers: StudioHandler[]): Hono;
}
type StudioHandler = (c: any, next?: any) => any;
export declare function getStudioRouteRegistrations(): StudioRouteRegistration[];
export declare function createStudioRoutes(group: string): StudioPolicyRoutes;
export {};
