/**
 * Generated by tsnapi — public API snapshot of `@devframes/next`
 */
// #region Interfaces
export interface CreateDevframeNextHandlerOptions {
  base?: string;
  host?: string;
  port?: number;
  flags?: Record<string, unknown>;
  auth?: InitDevframeOptions['auth'];
  resolveOrigin?: () => string;
  getStorageDir?: (_: DevframeStorageScope) => string;
  mcp?: InitDevframeOptions['mcp'];
  key?: string;
}
export interface CreateDevframeNextHostOptions {
  resolveOrigin: () => string;
  getStorageDir: (_: DevframeStorageScope) => string;
  connectionMeta?: ConnectionMeta;
}
export interface DevframeNextConfig {
  skipTrailingSlashRedirect?: boolean;
  [key: string]: unknown;
}
export interface DevframeNextHandler {
  fetch: (_: Request) => Promise<Response>;
  ready: Promise<void>;
  close: () => Promise<void>;
}
export interface DevframeNextHost {
  host: DevframeHost;
  fetch: (_: Request) => Promise<Response>;
  setConnectionMeta: (_: ConnectionMeta) => void;
  mountMcp: (_: DevframeNodeContext, _: string, _?: DevframeNextHostMcpOptions) => Promise<{
    dispose: () => Promise<void>;
  }>;
}
export interface DevframeNextHostMcpOptions {
  serverName?: string;
  serverVersion?: string;
  exposeSharedState?: boolean | ((_: string) => boolean);
  allowedOrigins?: readonly string[] | false;
}
// #endregion

// #region Functions
export declare function createDevframeNextHandler(_: DevframeDefinition, _?: CreateDevframeNextHandlerOptions): DevframeNextHandler;
export declare function createDevframeNextHost(_: CreateDevframeNextHostOptions): DevframeNextHost;
export declare function withDevframe<T extends DevframeNextConfig>(_?: T): T;
// #endregion