import { A as Definition, C as Rules, D as Action, O as ActionName, _ as PermixHooks, g as Permix, l as CheckArgs, u as CheckContext } from "../index-BYcbfVQ7.mjs";
import { t as MaybePromise } from "../utils-ReVRszGL.mjs";
import { Context } from "elysia";

//#region src/elysia/permix.d.ts
interface MiddlewareContext {
  context: Context;
}
interface PermixOptions<D extends Definition> {
  /**
   * Called when a `checkMiddleware` denies the request. Defaults to a 403 JSON
   * response of `{ error: 'Forbidden' }`.
   */
  onForbidden?: (params: CheckContext<D> & MiddlewareContext) => MaybePromise<any>;
}
/**
 * Create a middleware factory that wires Permix into Elysia routes.
 *
 * Use `.contextKey('name')` to set a custom context key (defaults to a unique
 * `Symbol('permix')`).
 *
 * @example
 * ```ts
 * import { Elysia } from 'elysia'
 * import { createPermix } from 'permix/elysia'
 *
 * const permix = createPermix<{
 *   post: ['create', 'read']
 * }>()
 *
 * new Elysia()
 *   .onBeforeHandle(permix.setupMiddleware(({ context }) => ({
 *     post: { create: true, read: true },
 *   })))
 *   .onBeforeHandle('/posts', permix.checkMiddleware('post.read'))
 *   .get('/posts', () => ({ ok: true }))
 *   .listen(3000)
 * ```
 *
 * @link https://permix.letstri.dev/docs/integrations/elysia
 */
declare function createPermix<D extends Definition>(options?: PermixOptions<D>): {
  setupMiddleware: (callbackOrRules: Rules<D> | ((context: MiddlewareContext) => MaybePromise<Rules<D>>)) => (context: {
    body: unknown;
    query: Record<string, string>;
    params: Record<string, string>;
    headers: Record<string, string | undefined>;
    cookie: Record<string, import("elysia").Cookie<unknown>>;
    server: import("elysia/universal/server").Server | null;
    redirect: import("elysia").redirect;
    set: {
      headers: import("elysia").HTTPHeaders;
      status?: number | keyof import("elysia").StatusMap;
      redirect?: string;
      cookie?: Record<string, {
        domain?: string | undefined | undefined;
        expires?: Date | undefined;
        httpOnly?: boolean | undefined | undefined;
        maxAge?: number | undefined | undefined;
        path?: string | undefined | undefined;
        priority?: "low" | "medium" | "high" | undefined | undefined;
        partitioned?: boolean | undefined | undefined;
        sameSite?: true | false | "lax" | "strict" | "none" | undefined | undefined;
        secure?: boolean | undefined | undefined;
        secrets?: string | null | (string | null)[] | undefined;
        value?: unknown;
      }>;
    };
    path: string;
    route: string;
    request: Request;
    store: {};
    status: <const Code extends number | keyof import("elysia").StatusMap, const T = (Code extends 200 | 403 | 100 | 101 | 102 | 103 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 300 | 301 | 302 | 303 | 304 | 307 | 308 | 400 | 401 | 402 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 ? {
      readonly 100: "Continue";
      readonly 101: "Switching Protocols";
      readonly 102: "Processing";
      readonly 103: "Early Hints";
      readonly 200: "OK";
      readonly 201: "Created";
      readonly 202: "Accepted";
      readonly 203: "Non-Authoritative Information";
      readonly 204: "No Content";
      readonly 205: "Reset Content";
      readonly 206: "Partial Content";
      readonly 207: "Multi-Status";
      readonly 208: "Already Reported";
      readonly 300: "Multiple Choices";
      readonly 301: "Moved Permanently";
      readonly 302: "Found";
      readonly 303: "See Other";
      readonly 304: "Not Modified";
      readonly 307: "Temporary Redirect";
      readonly 308: "Permanent Redirect";
      readonly 400: "Bad Request";
      readonly 401: "Unauthorized";
      readonly 402: "Payment Required";
      readonly 403: "Forbidden";
      readonly 404: "Not Found";
      readonly 405: "Method Not Allowed";
      readonly 406: "Not Acceptable";
      readonly 407: "Proxy Authentication Required";
      readonly 408: "Request Timeout";
      readonly 409: "Conflict";
      readonly 410: "Gone";
      readonly 411: "Length Required";
      readonly 412: "Precondition Failed";
      readonly 413: "Payload Too Large";
      readonly 414: "URI Too Long";
      readonly 415: "Unsupported Media Type";
      readonly 416: "Range Not Satisfiable";
      readonly 417: "Expectation Failed";
      readonly 418: "I'm a teapot";
      readonly 420: "Enhance Your Calm";
      readonly 421: "Misdirected Request";
      readonly 422: "Unprocessable Content";
      readonly 423: "Locked";
      readonly 424: "Failed Dependency";
      readonly 425: "Too Early";
      readonly 426: "Upgrade Required";
      readonly 428: "Precondition Required";
      readonly 429: "Too Many Requests";
      readonly 431: "Request Header Fields Too Large";
      readonly 451: "Unavailable For Legal Reasons";
      readonly 500: "Internal Server Error";
      readonly 501: "Not Implemented";
      readonly 502: "Bad Gateway";
      readonly 503: "Service Unavailable";
      readonly 504: "Gateway Timeout";
      readonly 505: "HTTP Version Not Supported";
      readonly 506: "Variant Also Negotiates";
      readonly 507: "Insufficient Storage";
      readonly 508: "Loop Detected";
      readonly 510: "Not Extended";
      readonly 511: "Network Authentication Required";
    }[Code] : Code)>(code: Code, response?: T) => import("elysia").ElysiaCustomStatusResponse<Code, T, Code extends "Continue" | "Switching Protocols" | "Processing" | "Early Hints" | "OK" | "Created" | "Accepted" | "Non-Authoritative Information" | "No Content" | "Reset Content" | "Partial Content" | "Multi-Status" | "Already Reported" | "Multiple Choices" | "Moved Permanently" | "Found" | "See Other" | "Not Modified" | "Temporary Redirect" | "Permanent Redirect" | "Bad Request" | "Unauthorized" | "Payment Required" | "Forbidden" | "Not Found" | "Method Not Allowed" | "Not Acceptable" | "Proxy Authentication Required" | "Request Timeout" | "Conflict" | "Gone" | "Length Required" | "Precondition Failed" | "Payload Too Large" | "URI Too Long" | "Unsupported Media Type" | "Range Not Satisfiable" | "Expectation Failed" | "I'm a teapot" | "Enhance Your Calm" | "Misdirected Request" | "Unprocessable Content" | "Locked" | "Failed Dependency" | "Too Early" | "Upgrade Required" | "Precondition Required" | "Too Many Requests" | "Request Header Fields Too Large" | "Unavailable For Legal Reasons" | "Internal Server Error" | "Not Implemented" | "Bad Gateway" | "Service Unavailable" | "Gateway Timeout" | "HTTP Version Not Supported" | "Variant Also Negotiates" | "Insufficient Storage" | "Loop Detected" | "Not Extended" | "Network Authentication Required" ? {
      readonly Continue: 100;
      readonly "Switching Protocols": 101;
      readonly Processing: 102;
      readonly "Early Hints": 103;
      readonly OK: 200;
      readonly Created: 201;
      readonly Accepted: 202;
      readonly "Non-Authoritative Information": 203;
      readonly "No Content": 204;
      readonly "Reset Content": 205;
      readonly "Partial Content": 206;
      readonly "Multi-Status": 207;
      readonly "Already Reported": 208;
      readonly "Multiple Choices": 300;
      readonly "Moved Permanently": 301;
      readonly Found: 302;
      readonly "See Other": 303;
      readonly "Not Modified": 304;
      readonly "Temporary Redirect": 307;
      readonly "Permanent Redirect": 308;
      readonly "Bad Request": 400;
      readonly Unauthorized: 401;
      readonly "Payment Required": 402;
      readonly Forbidden: 403;
      readonly "Not Found": 404;
      readonly "Method Not Allowed": 405;
      readonly "Not Acceptable": 406;
      readonly "Proxy Authentication Required": 407;
      readonly "Request Timeout": 408;
      readonly Conflict: 409;
      readonly Gone: 410;
      readonly "Length Required": 411;
      readonly "Precondition Failed": 412;
      readonly "Payload Too Large": 413;
      readonly "URI Too Long": 414;
      readonly "Unsupported Media Type": 415;
      readonly "Range Not Satisfiable": 416;
      readonly "Expectation Failed": 417;
      readonly "I'm a teapot": 418;
      readonly "Enhance Your Calm": 420;
      readonly "Misdirected Request": 421;
      readonly "Unprocessable Content": 422;
      readonly Locked: 423;
      readonly "Failed Dependency": 424;
      readonly "Too Early": 425;
      readonly "Upgrade Required": 426;
      readonly "Precondition Required": 428;
      readonly "Too Many Requests": 429;
      readonly "Request Header Fields Too Large": 431;
      readonly "Unavailable For Legal Reasons": 451;
      readonly "Internal Server Error": 500;
      readonly "Not Implemented": 501;
      readonly "Bad Gateway": 502;
      readonly "Service Unavailable": 503;
      readonly "Gateway Timeout": 504;
      readonly "HTTP Version Not Supported": 505;
      readonly "Variant Also Negotiates": 506;
      readonly "Insufficient Storage": 507;
      readonly "Loop Detected": 508;
      readonly "Not Extended": 510;
      readonly "Network Authentication Required": 511;
    }[Code] : Code>;
  }) => Promise<void>;
  checkMiddleware: (...args: CheckArgs<D>) => (context: {
    body: unknown;
    query: Record<string, string>;
    params: Record<string, string>;
    headers: Record<string, string | undefined>;
    cookie: Record<string, import("elysia").Cookie<unknown>>;
    server: import("elysia/universal/server").Server | null;
    redirect: import("elysia").redirect;
    set: {
      headers: import("elysia").HTTPHeaders;
      status?: number | keyof import("elysia").StatusMap;
      redirect?: string;
      cookie?: Record<string, {
        domain?: string | undefined | undefined;
        expires?: Date | undefined;
        httpOnly?: boolean | undefined | undefined;
        maxAge?: number | undefined | undefined;
        path?: string | undefined | undefined;
        priority?: "low" | "medium" | "high" | undefined | undefined;
        partitioned?: boolean | undefined | undefined;
        sameSite?: true | false | "lax" | "strict" | "none" | undefined | undefined;
        secure?: boolean | undefined | undefined;
        secrets?: string | null | (string | null)[] | undefined;
        value?: unknown;
      }>;
    };
    path: string;
    route: string;
    request: Request;
    store: {};
    status: <const Code extends number | keyof import("elysia").StatusMap, const T = (Code extends 200 | 403 | 100 | 101 | 102 | 103 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 300 | 301 | 302 | 303 | 304 | 307 | 308 | 400 | 401 | 402 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 ? {
      readonly 100: "Continue";
      readonly 101: "Switching Protocols";
      readonly 102: "Processing";
      readonly 103: "Early Hints";
      readonly 200: "OK";
      readonly 201: "Created";
      readonly 202: "Accepted";
      readonly 203: "Non-Authoritative Information";
      readonly 204: "No Content";
      readonly 205: "Reset Content";
      readonly 206: "Partial Content";
      readonly 207: "Multi-Status";
      readonly 208: "Already Reported";
      readonly 300: "Multiple Choices";
      readonly 301: "Moved Permanently";
      readonly 302: "Found";
      readonly 303: "See Other";
      readonly 304: "Not Modified";
      readonly 307: "Temporary Redirect";
      readonly 308: "Permanent Redirect";
      readonly 400: "Bad Request";
      readonly 401: "Unauthorized";
      readonly 402: "Payment Required";
      readonly 403: "Forbidden";
      readonly 404: "Not Found";
      readonly 405: "Method Not Allowed";
      readonly 406: "Not Acceptable";
      readonly 407: "Proxy Authentication Required";
      readonly 408: "Request Timeout";
      readonly 409: "Conflict";
      readonly 410: "Gone";
      readonly 411: "Length Required";
      readonly 412: "Precondition Failed";
      readonly 413: "Payload Too Large";
      readonly 414: "URI Too Long";
      readonly 415: "Unsupported Media Type";
      readonly 416: "Range Not Satisfiable";
      readonly 417: "Expectation Failed";
      readonly 418: "I'm a teapot";
      readonly 420: "Enhance Your Calm";
      readonly 421: "Misdirected Request";
      readonly 422: "Unprocessable Content";
      readonly 423: "Locked";
      readonly 424: "Failed Dependency";
      readonly 425: "Too Early";
      readonly 426: "Upgrade Required";
      readonly 428: "Precondition Required";
      readonly 429: "Too Many Requests";
      readonly 431: "Request Header Fields Too Large";
      readonly 451: "Unavailable For Legal Reasons";
      readonly 500: "Internal Server Error";
      readonly 501: "Not Implemented";
      readonly 502: "Bad Gateway";
      readonly 503: "Service Unavailable";
      readonly 504: "Gateway Timeout";
      readonly 505: "HTTP Version Not Supported";
      readonly 506: "Variant Also Negotiates";
      readonly 507: "Insufficient Storage";
      readonly 508: "Loop Detected";
      readonly 510: "Not Extended";
      readonly 511: "Network Authentication Required";
    }[Code] : Code)>(code: Code, response?: T) => import("elysia").ElysiaCustomStatusResponse<Code, T, Code extends "Continue" | "Switching Protocols" | "Processing" | "Early Hints" | "OK" | "Created" | "Accepted" | "Non-Authoritative Information" | "No Content" | "Reset Content" | "Partial Content" | "Multi-Status" | "Already Reported" | "Multiple Choices" | "Moved Permanently" | "Found" | "See Other" | "Not Modified" | "Temporary Redirect" | "Permanent Redirect" | "Bad Request" | "Unauthorized" | "Payment Required" | "Forbidden" | "Not Found" | "Method Not Allowed" | "Not Acceptable" | "Proxy Authentication Required" | "Request Timeout" | "Conflict" | "Gone" | "Length Required" | "Precondition Failed" | "Payload Too Large" | "URI Too Long" | "Unsupported Media Type" | "Range Not Satisfiable" | "Expectation Failed" | "I'm a teapot" | "Enhance Your Calm" | "Misdirected Request" | "Unprocessable Content" | "Locked" | "Failed Dependency" | "Too Early" | "Upgrade Required" | "Precondition Required" | "Too Many Requests" | "Request Header Fields Too Large" | "Unavailable For Legal Reasons" | "Internal Server Error" | "Not Implemented" | "Bad Gateway" | "Service Unavailable" | "Gateway Timeout" | "HTTP Version Not Supported" | "Variant Also Negotiates" | "Insufficient Storage" | "Loop Detected" | "Not Extended" | "Network Authentication Required" ? {
      readonly Continue: 100;
      readonly "Switching Protocols": 101;
      readonly Processing: 102;
      readonly "Early Hints": 103;
      readonly OK: 200;
      readonly Created: 201;
      readonly Accepted: 202;
      readonly "Non-Authoritative Information": 203;
      readonly "No Content": 204;
      readonly "Reset Content": 205;
      readonly "Partial Content": 206;
      readonly "Multi-Status": 207;
      readonly "Already Reported": 208;
      readonly "Multiple Choices": 300;
      readonly "Moved Permanently": 301;
      readonly Found: 302;
      readonly "See Other": 303;
      readonly "Not Modified": 304;
      readonly "Temporary Redirect": 307;
      readonly "Permanent Redirect": 308;
      readonly "Bad Request": 400;
      readonly Unauthorized: 401;
      readonly "Payment Required": 402;
      readonly Forbidden: 403;
      readonly "Not Found": 404;
      readonly "Method Not Allowed": 405;
      readonly "Not Acceptable": 406;
      readonly "Proxy Authentication Required": 407;
      readonly "Request Timeout": 408;
      readonly Conflict: 409;
      readonly Gone: 410;
      readonly "Length Required": 411;
      readonly "Precondition Failed": 412;
      readonly "Payload Too Large": 413;
      readonly "URI Too Long": 414;
      readonly "Unsupported Media Type": 415;
      readonly "Range Not Satisfiable": 416;
      readonly "Expectation Failed": 417;
      readonly "I'm a teapot": 418;
      readonly "Enhance Your Calm": 420;
      readonly "Misdirected Request": 421;
      readonly "Unprocessable Content": 422;
      readonly Locked: 423;
      readonly "Failed Dependency": 424;
      readonly "Too Early": 425;
      readonly "Upgrade Required": 426;
      readonly "Precondition Required": 428;
      readonly "Too Many Requests": 429;
      readonly "Request Header Fields Too Large": 431;
      readonly "Unavailable For Legal Reasons": 451;
      readonly "Internal Server Error": 500;
      readonly "Not Implemented": 501;
      readonly "Bad Gateway": 502;
      readonly "Service Unavailable": 503;
      readonly "Gateway Timeout": 504;
      readonly "HTTP Version Not Supported": 505;
      readonly "Variant Also Negotiates": 506;
      readonly "Insufficient Storage": 507;
      readonly "Loop Detected": 508;
      readonly "Not Extended": 510;
      readonly "Network Authentication Required": 511;
    }[Code] : Code>;
  }) => MaybePromise<any>;
  template: <T = void>(rules: Rules<D> | ((param: T) => Rules<D>)) => (param: T) => Rules<D>;
  get: (context: {
    body: unknown;
    query: Record<string, string>;
    params: Record<string, string>;
    headers: Record<string, string | undefined>;
    cookie: Record<string, import("elysia").Cookie<unknown>>;
    server: import("elysia/universal/server").Server | null;
    redirect: import("elysia").redirect;
    set: {
      headers: import("elysia").HTTPHeaders;
      status?: number | keyof import("elysia").StatusMap;
      redirect?: string;
      cookie?: Record<string, {
        domain?: string | undefined | undefined;
        expires?: Date | undefined;
        httpOnly?: boolean | undefined | undefined;
        maxAge?: number | undefined | undefined;
        path?: string | undefined | undefined;
        priority?: "low" | "medium" | "high" | undefined | undefined;
        partitioned?: boolean | undefined | undefined;
        sameSite?: true | false | "lax" | "strict" | "none" | undefined | undefined;
        secure?: boolean | undefined | undefined;
        secrets?: string | null | (string | null)[] | undefined;
        value?: unknown;
      }>;
    };
    path: string;
    route: string;
    request: Request;
    store: {};
    status: <const Code extends number | keyof import("elysia").StatusMap, const T = (Code extends 200 | 403 | 100 | 101 | 102 | 103 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 300 | 301 | 302 | 303 | 304 | 307 | 308 | 400 | 401 | 402 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 ? {
      readonly 100: "Continue";
      readonly 101: "Switching Protocols";
      readonly 102: "Processing";
      readonly 103: "Early Hints";
      readonly 200: "OK";
      readonly 201: "Created";
      readonly 202: "Accepted";
      readonly 203: "Non-Authoritative Information";
      readonly 204: "No Content";
      readonly 205: "Reset Content";
      readonly 206: "Partial Content";
      readonly 207: "Multi-Status";
      readonly 208: "Already Reported";
      readonly 300: "Multiple Choices";
      readonly 301: "Moved Permanently";
      readonly 302: "Found";
      readonly 303: "See Other";
      readonly 304: "Not Modified";
      readonly 307: "Temporary Redirect";
      readonly 308: "Permanent Redirect";
      readonly 400: "Bad Request";
      readonly 401: "Unauthorized";
      readonly 402: "Payment Required";
      readonly 403: "Forbidden";
      readonly 404: "Not Found";
      readonly 405: "Method Not Allowed";
      readonly 406: "Not Acceptable";
      readonly 407: "Proxy Authentication Required";
      readonly 408: "Request Timeout";
      readonly 409: "Conflict";
      readonly 410: "Gone";
      readonly 411: "Length Required";
      readonly 412: "Precondition Failed";
      readonly 413: "Payload Too Large";
      readonly 414: "URI Too Long";
      readonly 415: "Unsupported Media Type";
      readonly 416: "Range Not Satisfiable";
      readonly 417: "Expectation Failed";
      readonly 418: "I'm a teapot";
      readonly 420: "Enhance Your Calm";
      readonly 421: "Misdirected Request";
      readonly 422: "Unprocessable Content";
      readonly 423: "Locked";
      readonly 424: "Failed Dependency";
      readonly 425: "Too Early";
      readonly 426: "Upgrade Required";
      readonly 428: "Precondition Required";
      readonly 429: "Too Many Requests";
      readonly 431: "Request Header Fields Too Large";
      readonly 451: "Unavailable For Legal Reasons";
      readonly 500: "Internal Server Error";
      readonly 501: "Not Implemented";
      readonly 502: "Bad Gateway";
      readonly 503: "Service Unavailable";
      readonly 504: "Gateway Timeout";
      readonly 505: "HTTP Version Not Supported";
      readonly 506: "Variant Also Negotiates";
      readonly 507: "Insufficient Storage";
      readonly 508: "Loop Detected";
      readonly 510: "Not Extended";
      readonly 511: "Network Authentication Required";
    }[Code] : Code)>(code: Code, response?: T) => import("elysia").ElysiaCustomStatusResponse<Code, T, Code extends "Continue" | "Switching Protocols" | "Processing" | "Early Hints" | "OK" | "Created" | "Accepted" | "Non-Authoritative Information" | "No Content" | "Reset Content" | "Partial Content" | "Multi-Status" | "Already Reported" | "Multiple Choices" | "Moved Permanently" | "Found" | "See Other" | "Not Modified" | "Temporary Redirect" | "Permanent Redirect" | "Bad Request" | "Unauthorized" | "Payment Required" | "Forbidden" | "Not Found" | "Method Not Allowed" | "Not Acceptable" | "Proxy Authentication Required" | "Request Timeout" | "Conflict" | "Gone" | "Length Required" | "Precondition Failed" | "Payload Too Large" | "URI Too Long" | "Unsupported Media Type" | "Range Not Satisfiable" | "Expectation Failed" | "I'm a teapot" | "Enhance Your Calm" | "Misdirected Request" | "Unprocessable Content" | "Locked" | "Failed Dependency" | "Too Early" | "Upgrade Required" | "Precondition Required" | "Too Many Requests" | "Request Header Fields Too Large" | "Unavailable For Legal Reasons" | "Internal Server Error" | "Not Implemented" | "Bad Gateway" | "Service Unavailable" | "Gateway Timeout" | "HTTP Version Not Supported" | "Variant Also Negotiates" | "Insufficient Storage" | "Loop Detected" | "Not Extended" | "Network Authentication Required" ? {
      readonly Continue: 100;
      readonly "Switching Protocols": 101;
      readonly Processing: 102;
      readonly "Early Hints": 103;
      readonly OK: 200;
      readonly Created: 201;
      readonly Accepted: 202;
      readonly "Non-Authoritative Information": 203;
      readonly "No Content": 204;
      readonly "Reset Content": 205;
      readonly "Partial Content": 206;
      readonly "Multi-Status": 207;
      readonly "Already Reported": 208;
      readonly "Multiple Choices": 300;
      readonly "Moved Permanently": 301;
      readonly Found: 302;
      readonly "See Other": 303;
      readonly "Not Modified": 304;
      readonly "Temporary Redirect": 307;
      readonly "Permanent Redirect": 308;
      readonly "Bad Request": 400;
      readonly Unauthorized: 401;
      readonly "Payment Required": 402;
      readonly Forbidden: 403;
      readonly "Not Found": 404;
      readonly "Method Not Allowed": 405;
      readonly "Not Acceptable": 406;
      readonly "Proxy Authentication Required": 407;
      readonly "Request Timeout": 408;
      readonly Conflict: 409;
      readonly Gone: 410;
      readonly "Length Required": 411;
      readonly "Precondition Failed": 412;
      readonly "Payload Too Large": 413;
      readonly "URI Too Long": 414;
      readonly "Unsupported Media Type": 415;
      readonly "Range Not Satisfiable": 416;
      readonly "Expectation Failed": 417;
      readonly "I'm a teapot": 418;
      readonly "Enhance Your Calm": 420;
      readonly "Misdirected Request": 421;
      readonly "Unprocessable Content": 422;
      readonly Locked: 423;
      readonly "Failed Dependency": 424;
      readonly "Too Early": 425;
      readonly "Upgrade Required": 426;
      readonly "Precondition Required": 428;
      readonly "Too Many Requests": 429;
      readonly "Request Header Fields Too Large": 431;
      readonly "Unavailable For Legal Reasons": 451;
      readonly "Internal Server Error": 500;
      readonly "Not Implemented": 501;
      readonly "Bad Gateway": 502;
      readonly "Service Unavailable": 503;
      readonly "Gateway Timeout": 504;
      readonly "HTTP Version Not Supported": 505;
      readonly "Variant Also Negotiates": 506;
      readonly "Insufficient Storage": 507;
      readonly "Loop Detected": 508;
      readonly "Not Extended": 510;
      readonly "Network Authentication Required": 511;
    }[Code] : Code>;
  }) => Permix<D> | null;
  getOrThrow: (context: {
    body: unknown;
    query: Record<string, string>;
    params: Record<string, string>;
    headers: Record<string, string | undefined>;
    cookie: Record<string, import("elysia").Cookie<unknown>>;
    server: import("elysia/universal/server").Server | null;
    redirect: import("elysia").redirect;
    set: {
      headers: import("elysia").HTTPHeaders;
      status?: number | keyof import("elysia").StatusMap;
      redirect?: string;
      cookie?: Record<string, {
        domain?: string | undefined | undefined;
        expires?: Date | undefined;
        httpOnly?: boolean | undefined | undefined;
        maxAge?: number | undefined | undefined;
        path?: string | undefined | undefined;
        priority?: "low" | "medium" | "high" | undefined | undefined;
        partitioned?: boolean | undefined | undefined;
        sameSite?: true | false | "lax" | "strict" | "none" | undefined | undefined;
        secure?: boolean | undefined | undefined;
        secrets?: string | null | (string | null)[] | undefined;
        value?: unknown;
      }>;
    };
    path: string;
    route: string;
    request: Request;
    store: {};
    status: <const Code extends number | keyof import("elysia").StatusMap, const T = (Code extends 200 | 403 | 100 | 101 | 102 | 103 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 300 | 301 | 302 | 303 | 304 | 307 | 308 | 400 | 401 | 402 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 ? {
      readonly 100: "Continue";
      readonly 101: "Switching Protocols";
      readonly 102: "Processing";
      readonly 103: "Early Hints";
      readonly 200: "OK";
      readonly 201: "Created";
      readonly 202: "Accepted";
      readonly 203: "Non-Authoritative Information";
      readonly 204: "No Content";
      readonly 205: "Reset Content";
      readonly 206: "Partial Content";
      readonly 207: "Multi-Status";
      readonly 208: "Already Reported";
      readonly 300: "Multiple Choices";
      readonly 301: "Moved Permanently";
      readonly 302: "Found";
      readonly 303: "See Other";
      readonly 304: "Not Modified";
      readonly 307: "Temporary Redirect";
      readonly 308: "Permanent Redirect";
      readonly 400: "Bad Request";
      readonly 401: "Unauthorized";
      readonly 402: "Payment Required";
      readonly 403: "Forbidden";
      readonly 404: "Not Found";
      readonly 405: "Method Not Allowed";
      readonly 406: "Not Acceptable";
      readonly 407: "Proxy Authentication Required";
      readonly 408: "Request Timeout";
      readonly 409: "Conflict";
      readonly 410: "Gone";
      readonly 411: "Length Required";
      readonly 412: "Precondition Failed";
      readonly 413: "Payload Too Large";
      readonly 414: "URI Too Long";
      readonly 415: "Unsupported Media Type";
      readonly 416: "Range Not Satisfiable";
      readonly 417: "Expectation Failed";
      readonly 418: "I'm a teapot";
      readonly 420: "Enhance Your Calm";
      readonly 421: "Misdirected Request";
      readonly 422: "Unprocessable Content";
      readonly 423: "Locked";
      readonly 424: "Failed Dependency";
      readonly 425: "Too Early";
      readonly 426: "Upgrade Required";
      readonly 428: "Precondition Required";
      readonly 429: "Too Many Requests";
      readonly 431: "Request Header Fields Too Large";
      readonly 451: "Unavailable For Legal Reasons";
      readonly 500: "Internal Server Error";
      readonly 501: "Not Implemented";
      readonly 502: "Bad Gateway";
      readonly 503: "Service Unavailable";
      readonly 504: "Gateway Timeout";
      readonly 505: "HTTP Version Not Supported";
      readonly 506: "Variant Also Negotiates";
      readonly 507: "Insufficient Storage";
      readonly 508: "Loop Detected";
      readonly 510: "Not Extended";
      readonly 511: "Network Authentication Required";
    }[Code] : Code)>(code: Code, response?: T) => import("elysia").ElysiaCustomStatusResponse<Code, T, Code extends "Continue" | "Switching Protocols" | "Processing" | "Early Hints" | "OK" | "Created" | "Accepted" | "Non-Authoritative Information" | "No Content" | "Reset Content" | "Partial Content" | "Multi-Status" | "Already Reported" | "Multiple Choices" | "Moved Permanently" | "Found" | "See Other" | "Not Modified" | "Temporary Redirect" | "Permanent Redirect" | "Bad Request" | "Unauthorized" | "Payment Required" | "Forbidden" | "Not Found" | "Method Not Allowed" | "Not Acceptable" | "Proxy Authentication Required" | "Request Timeout" | "Conflict" | "Gone" | "Length Required" | "Precondition Failed" | "Payload Too Large" | "URI Too Long" | "Unsupported Media Type" | "Range Not Satisfiable" | "Expectation Failed" | "I'm a teapot" | "Enhance Your Calm" | "Misdirected Request" | "Unprocessable Content" | "Locked" | "Failed Dependency" | "Too Early" | "Upgrade Required" | "Precondition Required" | "Too Many Requests" | "Request Header Fields Too Large" | "Unavailable For Legal Reasons" | "Internal Server Error" | "Not Implemented" | "Bad Gateway" | "Service Unavailable" | "Gateway Timeout" | "HTTP Version Not Supported" | "Variant Also Negotiates" | "Insufficient Storage" | "Loop Detected" | "Not Extended" | "Network Authentication Required" ? {
      readonly Continue: 100;
      readonly "Switching Protocols": 101;
      readonly Processing: 102;
      readonly "Early Hints": 103;
      readonly OK: 200;
      readonly Created: 201;
      readonly Accepted: 202;
      readonly "Non-Authoritative Information": 203;
      readonly "No Content": 204;
      readonly "Reset Content": 205;
      readonly "Partial Content": 206;
      readonly "Multi-Status": 207;
      readonly "Already Reported": 208;
      readonly "Multiple Choices": 300;
      readonly "Moved Permanently": 301;
      readonly Found: 302;
      readonly "See Other": 303;
      readonly "Not Modified": 304;
      readonly "Temporary Redirect": 307;
      readonly "Permanent Redirect": 308;
      readonly "Bad Request": 400;
      readonly Unauthorized: 401;
      readonly "Payment Required": 402;
      readonly Forbidden: 403;
      readonly "Not Found": 404;
      readonly "Method Not Allowed": 405;
      readonly "Not Acceptable": 406;
      readonly "Proxy Authentication Required": 407;
      readonly "Request Timeout": 408;
      readonly Conflict: 409;
      readonly Gone: 410;
      readonly "Length Required": 411;
      readonly "Precondition Failed": 412;
      readonly "Payload Too Large": 413;
      readonly "URI Too Long": 414;
      readonly "Unsupported Media Type": 415;
      readonly "Range Not Satisfiable": 416;
      readonly "Expectation Failed": 417;
      readonly "I'm a teapot": 418;
      readonly "Enhance Your Calm": 420;
      readonly "Misdirected Request": 421;
      readonly "Unprocessable Content": 422;
      readonly Locked: 423;
      readonly "Failed Dependency": 424;
      readonly "Too Early": 425;
      readonly "Upgrade Required": 426;
      readonly "Precondition Required": 428;
      readonly "Too Many Requests": 429;
      readonly "Request Header Fields Too Large": 431;
      readonly "Unavailable For Legal Reasons": 451;
      readonly "Internal Server Error": 500;
      readonly "Not Implemented": 501;
      readonly "Bad Gateway": 502;
      readonly "Service Unavailable": 503;
      readonly "Gateway Timeout": 504;
      readonly "HTTP Version Not Supported": 505;
      readonly "Variant Also Negotiates": 506;
      readonly "Insufficient Storage": 507;
      readonly "Loop Detected": 508;
      readonly "Not Extended": 510;
      readonly "Network Authentication Required": 511;
    }[Code] : Code>;
  }) => Permix<D>;
  getRules: (context: {
    body: unknown;
    query: Record<string, string>;
    params: Record<string, string>;
    headers: Record<string, string | undefined>;
    cookie: Record<string, import("elysia").Cookie<unknown>>;
    server: import("elysia/universal/server").Server | null;
    redirect: import("elysia").redirect;
    set: {
      headers: import("elysia").HTTPHeaders;
      status?: number | keyof import("elysia").StatusMap;
      redirect?: string;
      cookie?: Record<string, {
        domain?: string | undefined | undefined;
        expires?: Date | undefined;
        httpOnly?: boolean | undefined | undefined;
        maxAge?: number | undefined | undefined;
        path?: string | undefined | undefined;
        priority?: "low" | "medium" | "high" | undefined | undefined;
        partitioned?: boolean | undefined | undefined;
        sameSite?: true | false | "lax" | "strict" | "none" | undefined | undefined;
        secure?: boolean | undefined | undefined;
        secrets?: string | null | (string | null)[] | undefined;
        value?: unknown;
      }>;
    };
    path: string;
    route: string;
    request: Request;
    store: {};
    status: <const Code extends number | keyof import("elysia").StatusMap, const T = (Code extends 200 | 403 | 100 | 101 | 102 | 103 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 300 | 301 | 302 | 303 | 304 | 307 | 308 | 400 | 401 | 402 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 ? {
      readonly 100: "Continue";
      readonly 101: "Switching Protocols";
      readonly 102: "Processing";
      readonly 103: "Early Hints";
      readonly 200: "OK";
      readonly 201: "Created";
      readonly 202: "Accepted";
      readonly 203: "Non-Authoritative Information";
      readonly 204: "No Content";
      readonly 205: "Reset Content";
      readonly 206: "Partial Content";
      readonly 207: "Multi-Status";
      readonly 208: "Already Reported";
      readonly 300: "Multiple Choices";
      readonly 301: "Moved Permanently";
      readonly 302: "Found";
      readonly 303: "See Other";
      readonly 304: "Not Modified";
      readonly 307: "Temporary Redirect";
      readonly 308: "Permanent Redirect";
      readonly 400: "Bad Request";
      readonly 401: "Unauthorized";
      readonly 402: "Payment Required";
      readonly 403: "Forbidden";
      readonly 404: "Not Found";
      readonly 405: "Method Not Allowed";
      readonly 406: "Not Acceptable";
      readonly 407: "Proxy Authentication Required";
      readonly 408: "Request Timeout";
      readonly 409: "Conflict";
      readonly 410: "Gone";
      readonly 411: "Length Required";
      readonly 412: "Precondition Failed";
      readonly 413: "Payload Too Large";
      readonly 414: "URI Too Long";
      readonly 415: "Unsupported Media Type";
      readonly 416: "Range Not Satisfiable";
      readonly 417: "Expectation Failed";
      readonly 418: "I'm a teapot";
      readonly 420: "Enhance Your Calm";
      readonly 421: "Misdirected Request";
      readonly 422: "Unprocessable Content";
      readonly 423: "Locked";
      readonly 424: "Failed Dependency";
      readonly 425: "Too Early";
      readonly 426: "Upgrade Required";
      readonly 428: "Precondition Required";
      readonly 429: "Too Many Requests";
      readonly 431: "Request Header Fields Too Large";
      readonly 451: "Unavailable For Legal Reasons";
      readonly 500: "Internal Server Error";
      readonly 501: "Not Implemented";
      readonly 502: "Bad Gateway";
      readonly 503: "Service Unavailable";
      readonly 504: "Gateway Timeout";
      readonly 505: "HTTP Version Not Supported";
      readonly 506: "Variant Also Negotiates";
      readonly 507: "Insufficient Storage";
      readonly 508: "Loop Detected";
      readonly 510: "Not Extended";
      readonly 511: "Network Authentication Required";
    }[Code] : Code)>(code: Code, response?: T) => import("elysia").ElysiaCustomStatusResponse<Code, T, Code extends "Continue" | "Switching Protocols" | "Processing" | "Early Hints" | "OK" | "Created" | "Accepted" | "Non-Authoritative Information" | "No Content" | "Reset Content" | "Partial Content" | "Multi-Status" | "Already Reported" | "Multiple Choices" | "Moved Permanently" | "Found" | "See Other" | "Not Modified" | "Temporary Redirect" | "Permanent Redirect" | "Bad Request" | "Unauthorized" | "Payment Required" | "Forbidden" | "Not Found" | "Method Not Allowed" | "Not Acceptable" | "Proxy Authentication Required" | "Request Timeout" | "Conflict" | "Gone" | "Length Required" | "Precondition Failed" | "Payload Too Large" | "URI Too Long" | "Unsupported Media Type" | "Range Not Satisfiable" | "Expectation Failed" | "I'm a teapot" | "Enhance Your Calm" | "Misdirected Request" | "Unprocessable Content" | "Locked" | "Failed Dependency" | "Too Early" | "Upgrade Required" | "Precondition Required" | "Too Many Requests" | "Request Header Fields Too Large" | "Unavailable For Legal Reasons" | "Internal Server Error" | "Not Implemented" | "Bad Gateway" | "Service Unavailable" | "Gateway Timeout" | "HTTP Version Not Supported" | "Variant Also Negotiates" | "Insufficient Storage" | "Loop Detected" | "Not Extended" | "Network Authentication Required" ? {
      readonly Continue: 100;
      readonly "Switching Protocols": 101;
      readonly Processing: 102;
      readonly "Early Hints": 103;
      readonly OK: 200;
      readonly Created: 201;
      readonly Accepted: 202;
      readonly "Non-Authoritative Information": 203;
      readonly "No Content": 204;
      readonly "Reset Content": 205;
      readonly "Partial Content": 206;
      readonly "Multi-Status": 207;
      readonly "Already Reported": 208;
      readonly "Multiple Choices": 300;
      readonly "Moved Permanently": 301;
      readonly Found: 302;
      readonly "See Other": 303;
      readonly "Not Modified": 304;
      readonly "Temporary Redirect": 307;
      readonly "Permanent Redirect": 308;
      readonly "Bad Request": 400;
      readonly Unauthorized: 401;
      readonly "Payment Required": 402;
      readonly Forbidden: 403;
      readonly "Not Found": 404;
      readonly "Method Not Allowed": 405;
      readonly "Not Acceptable": 406;
      readonly "Proxy Authentication Required": 407;
      readonly "Request Timeout": 408;
      readonly Conflict: 409;
      readonly Gone: 410;
      readonly "Length Required": 411;
      readonly "Precondition Failed": 412;
      readonly "Payload Too Large": 413;
      readonly "URI Too Long": 414;
      readonly "Unsupported Media Type": 415;
      readonly "Range Not Satisfiable": 416;
      readonly "Expectation Failed": 417;
      readonly "I'm a teapot": 418;
      readonly "Enhance Your Calm": 420;
      readonly "Misdirected Request": 421;
      readonly "Unprocessable Content": 422;
      readonly Locked: 423;
      readonly "Failed Dependency": 424;
      readonly "Too Early": 425;
      readonly "Upgrade Required": 426;
      readonly "Precondition Required": 428;
      readonly "Too Many Requests": 429;
      readonly "Request Header Fields Too Large": 431;
      readonly "Unavailable For Legal Reasons": 451;
      readonly "Internal Server Error": 500;
      readonly "Not Implemented": 501;
      readonly "Bad Gateway": 502;
      readonly "Service Unavailable": 503;
      readonly "Gateway Timeout": 504;
      readonly "HTTP Version Not Supported": 505;
      readonly "Variant Also Negotiates": 506;
      readonly "Insufficient Storage": 507;
      readonly "Loop Detected": 508;
      readonly "Not Extended": 510;
      readonly "Network Authentication Required": 511;
    }[Code] : Code>;
  }) => Rules<D> | null;
  hook: <K extends keyof PermixHooks<D>>(name: K, fn: PermixHooks<D>[K]) => () => void;
  hookOnce: <K extends keyof PermixHooks<D>>(name: K, fn: PermixHooks<D>[K]) => void;
  readonly key: string | symbol;
  $inferDefinition: D;
  $inferPath: D extends readonly Action[] ? `${ActionName<D[number]>}` : { [K in keyof D & string]: D[K] extends Definition ? D[K] extends infer T ? T extends D[K] ? T extends readonly Action[] ? `${K}.${ActionName<T[number]>}` : { [K_2 in keyof T & string]: T[K_2] extends Definition ? T[K_2] extends infer T_1 ? T_1 extends T[K_2] ? T_1 extends readonly Action[] ? `${K}.${K_2}.${ActionName<T_1[number]>}` : { [K_3 in keyof T_1 & string]: T_1[K_3] extends Definition ? T_1[K_3] extends infer T_2 ? T_2 extends T_1[K_3] ? T_2 extends readonly Action[] ? `${K}.${K_2}.${K_3}.${ActionName<T_2[number]>}` : { [K_4 in keyof T_2 & string]: T_2[K_4] extends Definition ? T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends readonly Action[] ? `${K}.${K_2}.${K_3}.${K_4}.${ActionName<T_3[number]>}` : { [K_5 in keyof T_3 & string]: T_3[K_5] extends Definition ? T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends readonly Action[] ? `${K}.${K_2}.${K_3}.${K_4}.${K_5}.${ActionName<T_4[number]>}` : { [K_6 in keyof T_4 & string]: T_4[K_6] extends Definition ? T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends readonly Action[] ? `${K}.${K_2}.${K_3}.${K_4}.${K_5}.${K_6}.${ActionName<T_5[number]>}` : { [K_7 in keyof T_5 & string]: T_5[K_7] extends Definition ? T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends readonly Action[] ? `${K}.${K_2}.${K_3}.${K_4}.${K_5}.${K_6}.${K_7}.${ActionName<T_6[number]>}` : { [K_8 in keyof T_6 & string]: T_6[K_8] extends Definition ? T_6[K_8] extends infer T_7 ? T_7 extends T_6[K_8] ? T_7 extends readonly Action[] ? `${K}.${K_2}.${K_3}.${K_4}.${K_5}.${K_6}.${K_7}.${K_8}.${ActionName<T_7[number]>}` : { [K_9 in keyof T_7 & string]: T_7[K_9] extends Definition ? T_7[K_9] extends infer T_8 ? T_8 extends T_7[K_9] ? T_8 extends readonly Action[] ? `${K}.${K_2}.${K_3}.${K_4}.${K_5}.${K_6}.${K_7}.${K_8}.${K_9}.${ActionName<T_8[number]>}` : { [K_10 in keyof T_8 & string]: T_8[K_10] extends Definition ? never : never }[keyof T_8 & string] : never : never : never }[keyof T_7 & string] : never : never : never }[keyof T_6 & string] : never : never : never }[keyof T_5 & string] : never : never : never }[keyof T_4 & string] : never : never : never }[keyof T_3 & string] : never : never : never }[keyof T_2 & string] : never : never : never }[keyof T_1 & string] : never : never : never }[keyof T & string] : never : never : never }[keyof D & string];
} & {
  contextKey(newKey: string | symbol): {
    setupMiddleware: (callbackOrRules: Rules<D> | ((context: MiddlewareContext) => MaybePromise<Rules<D>>)) => (context: {
      body: unknown;
      query: Record<string, string>;
      params: Record<string, string>;
      headers: Record<string, string | undefined>;
      cookie: Record<string, import("elysia").Cookie<unknown>>;
      server: import("elysia/universal/server").Server | null;
      redirect: import("elysia").redirect;
      set: {
        headers: import("elysia").HTTPHeaders;
        status?: number | keyof import("elysia").StatusMap;
        redirect?: string;
        cookie?: Record<string, {
          domain?: string | undefined | undefined;
          expires?: Date | undefined;
          httpOnly?: boolean | undefined | undefined;
          maxAge?: number | undefined | undefined;
          path?: string | undefined | undefined;
          priority?: "low" | "medium" | "high" | undefined | undefined;
          partitioned?: boolean | undefined | undefined;
          sameSite?: true | false | "lax" | "strict" | "none" | undefined | undefined;
          secure?: boolean | undefined | undefined;
          secrets?: string | null | (string | null)[] | undefined;
          value?: unknown;
        }>;
      };
      path: string;
      route: string;
      request: Request;
      store: {};
      status: <const Code extends number | keyof import("elysia").StatusMap, const T = (Code extends 200 | 403 | 100 | 101 | 102 | 103 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 300 | 301 | 302 | 303 | 304 | 307 | 308 | 400 | 401 | 402 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 ? {
        readonly 100: "Continue";
        readonly 101: "Switching Protocols";
        readonly 102: "Processing";
        readonly 103: "Early Hints";
        readonly 200: "OK";
        readonly 201: "Created";
        readonly 202: "Accepted";
        readonly 203: "Non-Authoritative Information";
        readonly 204: "No Content";
        readonly 205: "Reset Content";
        readonly 206: "Partial Content";
        readonly 207: "Multi-Status";
        readonly 208: "Already Reported";
        readonly 300: "Multiple Choices";
        readonly 301: "Moved Permanently";
        readonly 302: "Found";
        readonly 303: "See Other";
        readonly 304: "Not Modified";
        readonly 307: "Temporary Redirect";
        readonly 308: "Permanent Redirect";
        readonly 400: "Bad Request";
        readonly 401: "Unauthorized";
        readonly 402: "Payment Required";
        readonly 403: "Forbidden";
        readonly 404: "Not Found";
        readonly 405: "Method Not Allowed";
        readonly 406: "Not Acceptable";
        readonly 407: "Proxy Authentication Required";
        readonly 408: "Request Timeout";
        readonly 409: "Conflict";
        readonly 410: "Gone";
        readonly 411: "Length Required";
        readonly 412: "Precondition Failed";
        readonly 413: "Payload Too Large";
        readonly 414: "URI Too Long";
        readonly 415: "Unsupported Media Type";
        readonly 416: "Range Not Satisfiable";
        readonly 417: "Expectation Failed";
        readonly 418: "I'm a teapot";
        readonly 420: "Enhance Your Calm";
        readonly 421: "Misdirected Request";
        readonly 422: "Unprocessable Content";
        readonly 423: "Locked";
        readonly 424: "Failed Dependency";
        readonly 425: "Too Early";
        readonly 426: "Upgrade Required";
        readonly 428: "Precondition Required";
        readonly 429: "Too Many Requests";
        readonly 431: "Request Header Fields Too Large";
        readonly 451: "Unavailable For Legal Reasons";
        readonly 500: "Internal Server Error";
        readonly 501: "Not Implemented";
        readonly 502: "Bad Gateway";
        readonly 503: "Service Unavailable";
        readonly 504: "Gateway Timeout";
        readonly 505: "HTTP Version Not Supported";
        readonly 506: "Variant Also Negotiates";
        readonly 507: "Insufficient Storage";
        readonly 508: "Loop Detected";
        readonly 510: "Not Extended";
        readonly 511: "Network Authentication Required";
      }[Code] : Code)>(code: Code, response?: T) => import("elysia").ElysiaCustomStatusResponse<Code, T, Code extends "Continue" | "Switching Protocols" | "Processing" | "Early Hints" | "OK" | "Created" | "Accepted" | "Non-Authoritative Information" | "No Content" | "Reset Content" | "Partial Content" | "Multi-Status" | "Already Reported" | "Multiple Choices" | "Moved Permanently" | "Found" | "See Other" | "Not Modified" | "Temporary Redirect" | "Permanent Redirect" | "Bad Request" | "Unauthorized" | "Payment Required" | "Forbidden" | "Not Found" | "Method Not Allowed" | "Not Acceptable" | "Proxy Authentication Required" | "Request Timeout" | "Conflict" | "Gone" | "Length Required" | "Precondition Failed" | "Payload Too Large" | "URI Too Long" | "Unsupported Media Type" | "Range Not Satisfiable" | "Expectation Failed" | "I'm a teapot" | "Enhance Your Calm" | "Misdirected Request" | "Unprocessable Content" | "Locked" | "Failed Dependency" | "Too Early" | "Upgrade Required" | "Precondition Required" | "Too Many Requests" | "Request Header Fields Too Large" | "Unavailable For Legal Reasons" | "Internal Server Error" | "Not Implemented" | "Bad Gateway" | "Service Unavailable" | "Gateway Timeout" | "HTTP Version Not Supported" | "Variant Also Negotiates" | "Insufficient Storage" | "Loop Detected" | "Not Extended" | "Network Authentication Required" ? {
        readonly Continue: 100;
        readonly "Switching Protocols": 101;
        readonly Processing: 102;
        readonly "Early Hints": 103;
        readonly OK: 200;
        readonly Created: 201;
        readonly Accepted: 202;
        readonly "Non-Authoritative Information": 203;
        readonly "No Content": 204;
        readonly "Reset Content": 205;
        readonly "Partial Content": 206;
        readonly "Multi-Status": 207;
        readonly "Already Reported": 208;
        readonly "Multiple Choices": 300;
        readonly "Moved Permanently": 301;
        readonly Found: 302;
        readonly "See Other": 303;
        readonly "Not Modified": 304;
        readonly "Temporary Redirect": 307;
        readonly "Permanent Redirect": 308;
        readonly "Bad Request": 400;
        readonly Unauthorized: 401;
        readonly "Payment Required": 402;
        readonly Forbidden: 403;
        readonly "Not Found": 404;
        readonly "Method Not Allowed": 405;
        readonly "Not Acceptable": 406;
        readonly "Proxy Authentication Required": 407;
        readonly "Request Timeout": 408;
        readonly Conflict: 409;
        readonly Gone: 410;
        readonly "Length Required": 411;
        readonly "Precondition Failed": 412;
        readonly "Payload Too Large": 413;
        readonly "URI Too Long": 414;
        readonly "Unsupported Media Type": 415;
        readonly "Range Not Satisfiable": 416;
        readonly "Expectation Failed": 417;
        readonly "I'm a teapot": 418;
        readonly "Enhance Your Calm": 420;
        readonly "Misdirected Request": 421;
        readonly "Unprocessable Content": 422;
        readonly Locked: 423;
        readonly "Failed Dependency": 424;
        readonly "Too Early": 425;
        readonly "Upgrade Required": 426;
        readonly "Precondition Required": 428;
        readonly "Too Many Requests": 429;
        readonly "Request Header Fields Too Large": 431;
        readonly "Unavailable For Legal Reasons": 451;
        readonly "Internal Server Error": 500;
        readonly "Not Implemented": 501;
        readonly "Bad Gateway": 502;
        readonly "Service Unavailable": 503;
        readonly "Gateway Timeout": 504;
        readonly "HTTP Version Not Supported": 505;
        readonly "Variant Also Negotiates": 506;
        readonly "Insufficient Storage": 507;
        readonly "Loop Detected": 508;
        readonly "Not Extended": 510;
        readonly "Network Authentication Required": 511;
      }[Code] : Code>;
    }) => Promise<void>;
    checkMiddleware: (...args: CheckArgs<D>) => (context: {
      body: unknown;
      query: Record<string, string>;
      params: Record<string, string>;
      headers: Record<string, string | undefined>;
      cookie: Record<string, import("elysia").Cookie<unknown>>;
      server: import("elysia/universal/server").Server | null;
      redirect: import("elysia").redirect;
      set: {
        headers: import("elysia").HTTPHeaders;
        status?: number | keyof import("elysia").StatusMap;
        redirect?: string;
        cookie?: Record<string, {
          domain?: string | undefined | undefined;
          expires?: Date | undefined;
          httpOnly?: boolean | undefined | undefined;
          maxAge?: number | undefined | undefined;
          path?: string | undefined | undefined;
          priority?: "low" | "medium" | "high" | undefined | undefined;
          partitioned?: boolean | undefined | undefined;
          sameSite?: true | false | "lax" | "strict" | "none" | undefined | undefined;
          secure?: boolean | undefined | undefined;
          secrets?: string | null | (string | null)[] | undefined;
          value?: unknown;
        }>;
      };
      path: string;
      route: string;
      request: Request;
      store: {};
      status: <const Code extends number | keyof import("elysia").StatusMap, const T = (Code extends 200 | 403 | 100 | 101 | 102 | 103 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 300 | 301 | 302 | 303 | 304 | 307 | 308 | 400 | 401 | 402 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 ? {
        readonly 100: "Continue";
        readonly 101: "Switching Protocols";
        readonly 102: "Processing";
        readonly 103: "Early Hints";
        readonly 200: "OK";
        readonly 201: "Created";
        readonly 202: "Accepted";
        readonly 203: "Non-Authoritative Information";
        readonly 204: "No Content";
        readonly 205: "Reset Content";
        readonly 206: "Partial Content";
        readonly 207: "Multi-Status";
        readonly 208: "Already Reported";
        readonly 300: "Multiple Choices";
        readonly 301: "Moved Permanently";
        readonly 302: "Found";
        readonly 303: "See Other";
        readonly 304: "Not Modified";
        readonly 307: "Temporary Redirect";
        readonly 308: "Permanent Redirect";
        readonly 400: "Bad Request";
        readonly 401: "Unauthorized";
        readonly 402: "Payment Required";
        readonly 403: "Forbidden";
        readonly 404: "Not Found";
        readonly 405: "Method Not Allowed";
        readonly 406: "Not Acceptable";
        readonly 407: "Proxy Authentication Required";
        readonly 408: "Request Timeout";
        readonly 409: "Conflict";
        readonly 410: "Gone";
        readonly 411: "Length Required";
        readonly 412: "Precondition Failed";
        readonly 413: "Payload Too Large";
        readonly 414: "URI Too Long";
        readonly 415: "Unsupported Media Type";
        readonly 416: "Range Not Satisfiable";
        readonly 417: "Expectation Failed";
        readonly 418: "I'm a teapot";
        readonly 420: "Enhance Your Calm";
        readonly 421: "Misdirected Request";
        readonly 422: "Unprocessable Content";
        readonly 423: "Locked";
        readonly 424: "Failed Dependency";
        readonly 425: "Too Early";
        readonly 426: "Upgrade Required";
        readonly 428: "Precondition Required";
        readonly 429: "Too Many Requests";
        readonly 431: "Request Header Fields Too Large";
        readonly 451: "Unavailable For Legal Reasons";
        readonly 500: "Internal Server Error";
        readonly 501: "Not Implemented";
        readonly 502: "Bad Gateway";
        readonly 503: "Service Unavailable";
        readonly 504: "Gateway Timeout";
        readonly 505: "HTTP Version Not Supported";
        readonly 506: "Variant Also Negotiates";
        readonly 507: "Insufficient Storage";
        readonly 508: "Loop Detected";
        readonly 510: "Not Extended";
        readonly 511: "Network Authentication Required";
      }[Code] : Code)>(code: Code, response?: T) => import("elysia").ElysiaCustomStatusResponse<Code, T, Code extends "Continue" | "Switching Protocols" | "Processing" | "Early Hints" | "OK" | "Created" | "Accepted" | "Non-Authoritative Information" | "No Content" | "Reset Content" | "Partial Content" | "Multi-Status" | "Already Reported" | "Multiple Choices" | "Moved Permanently" | "Found" | "See Other" | "Not Modified" | "Temporary Redirect" | "Permanent Redirect" | "Bad Request" | "Unauthorized" | "Payment Required" | "Forbidden" | "Not Found" | "Method Not Allowed" | "Not Acceptable" | "Proxy Authentication Required" | "Request Timeout" | "Conflict" | "Gone" | "Length Required" | "Precondition Failed" | "Payload Too Large" | "URI Too Long" | "Unsupported Media Type" | "Range Not Satisfiable" | "Expectation Failed" | "I'm a teapot" | "Enhance Your Calm" | "Misdirected Request" | "Unprocessable Content" | "Locked" | "Failed Dependency" | "Too Early" | "Upgrade Required" | "Precondition Required" | "Too Many Requests" | "Request Header Fields Too Large" | "Unavailable For Legal Reasons" | "Internal Server Error" | "Not Implemented" | "Bad Gateway" | "Service Unavailable" | "Gateway Timeout" | "HTTP Version Not Supported" | "Variant Also Negotiates" | "Insufficient Storage" | "Loop Detected" | "Not Extended" | "Network Authentication Required" ? {
        readonly Continue: 100;
        readonly "Switching Protocols": 101;
        readonly Processing: 102;
        readonly "Early Hints": 103;
        readonly OK: 200;
        readonly Created: 201;
        readonly Accepted: 202;
        readonly "Non-Authoritative Information": 203;
        readonly "No Content": 204;
        readonly "Reset Content": 205;
        readonly "Partial Content": 206;
        readonly "Multi-Status": 207;
        readonly "Already Reported": 208;
        readonly "Multiple Choices": 300;
        readonly "Moved Permanently": 301;
        readonly Found: 302;
        readonly "See Other": 303;
        readonly "Not Modified": 304;
        readonly "Temporary Redirect": 307;
        readonly "Permanent Redirect": 308;
        readonly "Bad Request": 400;
        readonly Unauthorized: 401;
        readonly "Payment Required": 402;
        readonly Forbidden: 403;
        readonly "Not Found": 404;
        readonly "Method Not Allowed": 405;
        readonly "Not Acceptable": 406;
        readonly "Proxy Authentication Required": 407;
        readonly "Request Timeout": 408;
        readonly Conflict: 409;
        readonly Gone: 410;
        readonly "Length Required": 411;
        readonly "Precondition Failed": 412;
        readonly "Payload Too Large": 413;
        readonly "URI Too Long": 414;
        readonly "Unsupported Media Type": 415;
        readonly "Range Not Satisfiable": 416;
        readonly "Expectation Failed": 417;
        readonly "I'm a teapot": 418;
        readonly "Enhance Your Calm": 420;
        readonly "Misdirected Request": 421;
        readonly "Unprocessable Content": 422;
        readonly Locked: 423;
        readonly "Failed Dependency": 424;
        readonly "Too Early": 425;
        readonly "Upgrade Required": 426;
        readonly "Precondition Required": 428;
        readonly "Too Many Requests": 429;
        readonly "Request Header Fields Too Large": 431;
        readonly "Unavailable For Legal Reasons": 451;
        readonly "Internal Server Error": 500;
        readonly "Not Implemented": 501;
        readonly "Bad Gateway": 502;
        readonly "Service Unavailable": 503;
        readonly "Gateway Timeout": 504;
        readonly "HTTP Version Not Supported": 505;
        readonly "Variant Also Negotiates": 506;
        readonly "Insufficient Storage": 507;
        readonly "Loop Detected": 508;
        readonly "Not Extended": 510;
        readonly "Network Authentication Required": 511;
      }[Code] : Code>;
    }) => MaybePromise<any>;
    template: <T = void>(rules: Rules<D> | ((param: T) => Rules<D>)) => (param: T) => Rules<D>;
    get: (context: {
      body: unknown;
      query: Record<string, string>;
      params: Record<string, string>;
      headers: Record<string, string | undefined>;
      cookie: Record<string, import("elysia").Cookie<unknown>>;
      server: import("elysia/universal/server").Server | null;
      redirect: import("elysia").redirect;
      set: {
        headers: import("elysia").HTTPHeaders;
        status?: number | keyof import("elysia").StatusMap;
        redirect?: string;
        cookie?: Record<string, {
          domain?: string | undefined | undefined;
          expires?: Date | undefined;
          httpOnly?: boolean | undefined | undefined;
          maxAge?: number | undefined | undefined;
          path?: string | undefined | undefined;
          priority?: "low" | "medium" | "high" | undefined | undefined;
          partitioned?: boolean | undefined | undefined;
          sameSite?: true | false | "lax" | "strict" | "none" | undefined | undefined;
          secure?: boolean | undefined | undefined;
          secrets?: string | null | (string | null)[] | undefined;
          value?: unknown;
        }>;
      };
      path: string;
      route: string;
      request: Request;
      store: {};
      status: <const Code extends number | keyof import("elysia").StatusMap, const T = (Code extends 200 | 403 | 100 | 101 | 102 | 103 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 300 | 301 | 302 | 303 | 304 | 307 | 308 | 400 | 401 | 402 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 ? {
        readonly 100: "Continue";
        readonly 101: "Switching Protocols";
        readonly 102: "Processing";
        readonly 103: "Early Hints";
        readonly 200: "OK";
        readonly 201: "Created";
        readonly 202: "Accepted";
        readonly 203: "Non-Authoritative Information";
        readonly 204: "No Content";
        readonly 205: "Reset Content";
        readonly 206: "Partial Content";
        readonly 207: "Multi-Status";
        readonly 208: "Already Reported";
        readonly 300: "Multiple Choices";
        readonly 301: "Moved Permanently";
        readonly 302: "Found";
        readonly 303: "See Other";
        readonly 304: "Not Modified";
        readonly 307: "Temporary Redirect";
        readonly 308: "Permanent Redirect";
        readonly 400: "Bad Request";
        readonly 401: "Unauthorized";
        readonly 402: "Payment Required";
        readonly 403: "Forbidden";
        readonly 404: "Not Found";
        readonly 405: "Method Not Allowed";
        readonly 406: "Not Acceptable";
        readonly 407: "Proxy Authentication Required";
        readonly 408: "Request Timeout";
        readonly 409: "Conflict";
        readonly 410: "Gone";
        readonly 411: "Length Required";
        readonly 412: "Precondition Failed";
        readonly 413: "Payload Too Large";
        readonly 414: "URI Too Long";
        readonly 415: "Unsupported Media Type";
        readonly 416: "Range Not Satisfiable";
        readonly 417: "Expectation Failed";
        readonly 418: "I'm a teapot";
        readonly 420: "Enhance Your Calm";
        readonly 421: "Misdirected Request";
        readonly 422: "Unprocessable Content";
        readonly 423: "Locked";
        readonly 424: "Failed Dependency";
        readonly 425: "Too Early";
        readonly 426: "Upgrade Required";
        readonly 428: "Precondition Required";
        readonly 429: "Too Many Requests";
        readonly 431: "Request Header Fields Too Large";
        readonly 451: "Unavailable For Legal Reasons";
        readonly 500: "Internal Server Error";
        readonly 501: "Not Implemented";
        readonly 502: "Bad Gateway";
        readonly 503: "Service Unavailable";
        readonly 504: "Gateway Timeout";
        readonly 505: "HTTP Version Not Supported";
        readonly 506: "Variant Also Negotiates";
        readonly 507: "Insufficient Storage";
        readonly 508: "Loop Detected";
        readonly 510: "Not Extended";
        readonly 511: "Network Authentication Required";
      }[Code] : Code)>(code: Code, response?: T) => import("elysia").ElysiaCustomStatusResponse<Code, T, Code extends "Continue" | "Switching Protocols" | "Processing" | "Early Hints" | "OK" | "Created" | "Accepted" | "Non-Authoritative Information" | "No Content" | "Reset Content" | "Partial Content" | "Multi-Status" | "Already Reported" | "Multiple Choices" | "Moved Permanently" | "Found" | "See Other" | "Not Modified" | "Temporary Redirect" | "Permanent Redirect" | "Bad Request" | "Unauthorized" | "Payment Required" | "Forbidden" | "Not Found" | "Method Not Allowed" | "Not Acceptable" | "Proxy Authentication Required" | "Request Timeout" | "Conflict" | "Gone" | "Length Required" | "Precondition Failed" | "Payload Too Large" | "URI Too Long" | "Unsupported Media Type" | "Range Not Satisfiable" | "Expectation Failed" | "I'm a teapot" | "Enhance Your Calm" | "Misdirected Request" | "Unprocessable Content" | "Locked" | "Failed Dependency" | "Too Early" | "Upgrade Required" | "Precondition Required" | "Too Many Requests" | "Request Header Fields Too Large" | "Unavailable For Legal Reasons" | "Internal Server Error" | "Not Implemented" | "Bad Gateway" | "Service Unavailable" | "Gateway Timeout" | "HTTP Version Not Supported" | "Variant Also Negotiates" | "Insufficient Storage" | "Loop Detected" | "Not Extended" | "Network Authentication Required" ? {
        readonly Continue: 100;
        readonly "Switching Protocols": 101;
        readonly Processing: 102;
        readonly "Early Hints": 103;
        readonly OK: 200;
        readonly Created: 201;
        readonly Accepted: 202;
        readonly "Non-Authoritative Information": 203;
        readonly "No Content": 204;
        readonly "Reset Content": 205;
        readonly "Partial Content": 206;
        readonly "Multi-Status": 207;
        readonly "Already Reported": 208;
        readonly "Multiple Choices": 300;
        readonly "Moved Permanently": 301;
        readonly Found: 302;
        readonly "See Other": 303;
        readonly "Not Modified": 304;
        readonly "Temporary Redirect": 307;
        readonly "Permanent Redirect": 308;
        readonly "Bad Request": 400;
        readonly Unauthorized: 401;
        readonly "Payment Required": 402;
        readonly Forbidden: 403;
        readonly "Not Found": 404;
        readonly "Method Not Allowed": 405;
        readonly "Not Acceptable": 406;
        readonly "Proxy Authentication Required": 407;
        readonly "Request Timeout": 408;
        readonly Conflict: 409;
        readonly Gone: 410;
        readonly "Length Required": 411;
        readonly "Precondition Failed": 412;
        readonly "Payload Too Large": 413;
        readonly "URI Too Long": 414;
        readonly "Unsupported Media Type": 415;
        readonly "Range Not Satisfiable": 416;
        readonly "Expectation Failed": 417;
        readonly "I'm a teapot": 418;
        readonly "Enhance Your Calm": 420;
        readonly "Misdirected Request": 421;
        readonly "Unprocessable Content": 422;
        readonly Locked: 423;
        readonly "Failed Dependency": 424;
        readonly "Too Early": 425;
        readonly "Upgrade Required": 426;
        readonly "Precondition Required": 428;
        readonly "Too Many Requests": 429;
        readonly "Request Header Fields Too Large": 431;
        readonly "Unavailable For Legal Reasons": 451;
        readonly "Internal Server Error": 500;
        readonly "Not Implemented": 501;
        readonly "Bad Gateway": 502;
        readonly "Service Unavailable": 503;
        readonly "Gateway Timeout": 504;
        readonly "HTTP Version Not Supported": 505;
        readonly "Variant Also Negotiates": 506;
        readonly "Insufficient Storage": 507;
        readonly "Loop Detected": 508;
        readonly "Not Extended": 510;
        readonly "Network Authentication Required": 511;
      }[Code] : Code>;
    }) => Permix<D> | null;
    getOrThrow: (context: {
      body: unknown;
      query: Record<string, string>;
      params: Record<string, string>;
      headers: Record<string, string | undefined>;
      cookie: Record<string, import("elysia").Cookie<unknown>>;
      server: import("elysia/universal/server").Server | null;
      redirect: import("elysia").redirect;
      set: {
        headers: import("elysia").HTTPHeaders;
        status?: number | keyof import("elysia").StatusMap;
        redirect?: string;
        cookie?: Record<string, {
          domain?: string | undefined | undefined;
          expires?: Date | undefined;
          httpOnly?: boolean | undefined | undefined;
          maxAge?: number | undefined | undefined;
          path?: string | undefined | undefined;
          priority?: "low" | "medium" | "high" | undefined | undefined;
          partitioned?: boolean | undefined | undefined;
          sameSite?: true | false | "lax" | "strict" | "none" | undefined | undefined;
          secure?: boolean | undefined | undefined;
          secrets?: string | null | (string | null)[] | undefined;
          value?: unknown;
        }>;
      };
      path: string;
      route: string;
      request: Request;
      store: {};
      status: <const Code extends number | keyof import("elysia").StatusMap, const T = (Code extends 200 | 403 | 100 | 101 | 102 | 103 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 300 | 301 | 302 | 303 | 304 | 307 | 308 | 400 | 401 | 402 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 ? {
        readonly 100: "Continue";
        readonly 101: "Switching Protocols";
        readonly 102: "Processing";
        readonly 103: "Early Hints";
        readonly 200: "OK";
        readonly 201: "Created";
        readonly 202: "Accepted";
        readonly 203: "Non-Authoritative Information";
        readonly 204: "No Content";
        readonly 205: "Reset Content";
        readonly 206: "Partial Content";
        readonly 207: "Multi-Status";
        readonly 208: "Already Reported";
        readonly 300: "Multiple Choices";
        readonly 301: "Moved Permanently";
        readonly 302: "Found";
        readonly 303: "See Other";
        readonly 304: "Not Modified";
        readonly 307: "Temporary Redirect";
        readonly 308: "Permanent Redirect";
        readonly 400: "Bad Request";
        readonly 401: "Unauthorized";
        readonly 402: "Payment Required";
        readonly 403: "Forbidden";
        readonly 404: "Not Found";
        readonly 405: "Method Not Allowed";
        readonly 406: "Not Acceptable";
        readonly 407: "Proxy Authentication Required";
        readonly 408: "Request Timeout";
        readonly 409: "Conflict";
        readonly 410: "Gone";
        readonly 411: "Length Required";
        readonly 412: "Precondition Failed";
        readonly 413: "Payload Too Large";
        readonly 414: "URI Too Long";
        readonly 415: "Unsupported Media Type";
        readonly 416: "Range Not Satisfiable";
        readonly 417: "Expectation Failed";
        readonly 418: "I'm a teapot";
        readonly 420: "Enhance Your Calm";
        readonly 421: "Misdirected Request";
        readonly 422: "Unprocessable Content";
        readonly 423: "Locked";
        readonly 424: "Failed Dependency";
        readonly 425: "Too Early";
        readonly 426: "Upgrade Required";
        readonly 428: "Precondition Required";
        readonly 429: "Too Many Requests";
        readonly 431: "Request Header Fields Too Large";
        readonly 451: "Unavailable For Legal Reasons";
        readonly 500: "Internal Server Error";
        readonly 501: "Not Implemented";
        readonly 502: "Bad Gateway";
        readonly 503: "Service Unavailable";
        readonly 504: "Gateway Timeout";
        readonly 505: "HTTP Version Not Supported";
        readonly 506: "Variant Also Negotiates";
        readonly 507: "Insufficient Storage";
        readonly 508: "Loop Detected";
        readonly 510: "Not Extended";
        readonly 511: "Network Authentication Required";
      }[Code] : Code)>(code: Code, response?: T) => import("elysia").ElysiaCustomStatusResponse<Code, T, Code extends "Continue" | "Switching Protocols" | "Processing" | "Early Hints" | "OK" | "Created" | "Accepted" | "Non-Authoritative Information" | "No Content" | "Reset Content" | "Partial Content" | "Multi-Status" | "Already Reported" | "Multiple Choices" | "Moved Permanently" | "Found" | "See Other" | "Not Modified" | "Temporary Redirect" | "Permanent Redirect" | "Bad Request" | "Unauthorized" | "Payment Required" | "Forbidden" | "Not Found" | "Method Not Allowed" | "Not Acceptable" | "Proxy Authentication Required" | "Request Timeout" | "Conflict" | "Gone" | "Length Required" | "Precondition Failed" | "Payload Too Large" | "URI Too Long" | "Unsupported Media Type" | "Range Not Satisfiable" | "Expectation Failed" | "I'm a teapot" | "Enhance Your Calm" | "Misdirected Request" | "Unprocessable Content" | "Locked" | "Failed Dependency" | "Too Early" | "Upgrade Required" | "Precondition Required" | "Too Many Requests" | "Request Header Fields Too Large" | "Unavailable For Legal Reasons" | "Internal Server Error" | "Not Implemented" | "Bad Gateway" | "Service Unavailable" | "Gateway Timeout" | "HTTP Version Not Supported" | "Variant Also Negotiates" | "Insufficient Storage" | "Loop Detected" | "Not Extended" | "Network Authentication Required" ? {
        readonly Continue: 100;
        readonly "Switching Protocols": 101;
        readonly Processing: 102;
        readonly "Early Hints": 103;
        readonly OK: 200;
        readonly Created: 201;
        readonly Accepted: 202;
        readonly "Non-Authoritative Information": 203;
        readonly "No Content": 204;
        readonly "Reset Content": 205;
        readonly "Partial Content": 206;
        readonly "Multi-Status": 207;
        readonly "Already Reported": 208;
        readonly "Multiple Choices": 300;
        readonly "Moved Permanently": 301;
        readonly Found: 302;
        readonly "See Other": 303;
        readonly "Not Modified": 304;
        readonly "Temporary Redirect": 307;
        readonly "Permanent Redirect": 308;
        readonly "Bad Request": 400;
        readonly Unauthorized: 401;
        readonly "Payment Required": 402;
        readonly Forbidden: 403;
        readonly "Not Found": 404;
        readonly "Method Not Allowed": 405;
        readonly "Not Acceptable": 406;
        readonly "Proxy Authentication Required": 407;
        readonly "Request Timeout": 408;
        readonly Conflict: 409;
        readonly Gone: 410;
        readonly "Length Required": 411;
        readonly "Precondition Failed": 412;
        readonly "Payload Too Large": 413;
        readonly "URI Too Long": 414;
        readonly "Unsupported Media Type": 415;
        readonly "Range Not Satisfiable": 416;
        readonly "Expectation Failed": 417;
        readonly "I'm a teapot": 418;
        readonly "Enhance Your Calm": 420;
        readonly "Misdirected Request": 421;
        readonly "Unprocessable Content": 422;
        readonly Locked: 423;
        readonly "Failed Dependency": 424;
        readonly "Too Early": 425;
        readonly "Upgrade Required": 426;
        readonly "Precondition Required": 428;
        readonly "Too Many Requests": 429;
        readonly "Request Header Fields Too Large": 431;
        readonly "Unavailable For Legal Reasons": 451;
        readonly "Internal Server Error": 500;
        readonly "Not Implemented": 501;
        readonly "Bad Gateway": 502;
        readonly "Service Unavailable": 503;
        readonly "Gateway Timeout": 504;
        readonly "HTTP Version Not Supported": 505;
        readonly "Variant Also Negotiates": 506;
        readonly "Insufficient Storage": 507;
        readonly "Loop Detected": 508;
        readonly "Not Extended": 510;
        readonly "Network Authentication Required": 511;
      }[Code] : Code>;
    }) => Permix<D>;
    getRules: (context: {
      body: unknown;
      query: Record<string, string>;
      params: Record<string, string>;
      headers: Record<string, string | undefined>;
      cookie: Record<string, import("elysia").Cookie<unknown>>;
      server: import("elysia/universal/server").Server | null;
      redirect: import("elysia").redirect;
      set: {
        headers: import("elysia").HTTPHeaders;
        status?: number | keyof import("elysia").StatusMap;
        redirect?: string;
        cookie?: Record<string, {
          domain?: string | undefined | undefined;
          expires?: Date | undefined;
          httpOnly?: boolean | undefined | undefined;
          maxAge?: number | undefined | undefined;
          path?: string | undefined | undefined;
          priority?: "low" | "medium" | "high" | undefined | undefined;
          partitioned?: boolean | undefined | undefined;
          sameSite?: true | false | "lax" | "strict" | "none" | undefined | undefined;
          secure?: boolean | undefined | undefined;
          secrets?: string | null | (string | null)[] | undefined;
          value?: unknown;
        }>;
      };
      path: string;
      route: string;
      request: Request;
      store: {};
      status: <const Code extends number | keyof import("elysia").StatusMap, const T = (Code extends 200 | 403 | 100 | 101 | 102 | 103 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 300 | 301 | 302 | 303 | 304 | 307 | 308 | 400 | 401 | 402 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 ? {
        readonly 100: "Continue";
        readonly 101: "Switching Protocols";
        readonly 102: "Processing";
        readonly 103: "Early Hints";
        readonly 200: "OK";
        readonly 201: "Created";
        readonly 202: "Accepted";
        readonly 203: "Non-Authoritative Information";
        readonly 204: "No Content";
        readonly 205: "Reset Content";
        readonly 206: "Partial Content";
        readonly 207: "Multi-Status";
        readonly 208: "Already Reported";
        readonly 300: "Multiple Choices";
        readonly 301: "Moved Permanently";
        readonly 302: "Found";
        readonly 303: "See Other";
        readonly 304: "Not Modified";
        readonly 307: "Temporary Redirect";
        readonly 308: "Permanent Redirect";
        readonly 400: "Bad Request";
        readonly 401: "Unauthorized";
        readonly 402: "Payment Required";
        readonly 403: "Forbidden";
        readonly 404: "Not Found";
        readonly 405: "Method Not Allowed";
        readonly 406: "Not Acceptable";
        readonly 407: "Proxy Authentication Required";
        readonly 408: "Request Timeout";
        readonly 409: "Conflict";
        readonly 410: "Gone";
        readonly 411: "Length Required";
        readonly 412: "Precondition Failed";
        readonly 413: "Payload Too Large";
        readonly 414: "URI Too Long";
        readonly 415: "Unsupported Media Type";
        readonly 416: "Range Not Satisfiable";
        readonly 417: "Expectation Failed";
        readonly 418: "I'm a teapot";
        readonly 420: "Enhance Your Calm";
        readonly 421: "Misdirected Request";
        readonly 422: "Unprocessable Content";
        readonly 423: "Locked";
        readonly 424: "Failed Dependency";
        readonly 425: "Too Early";
        readonly 426: "Upgrade Required";
        readonly 428: "Precondition Required";
        readonly 429: "Too Many Requests";
        readonly 431: "Request Header Fields Too Large";
        readonly 451: "Unavailable For Legal Reasons";
        readonly 500: "Internal Server Error";
        readonly 501: "Not Implemented";
        readonly 502: "Bad Gateway";
        readonly 503: "Service Unavailable";
        readonly 504: "Gateway Timeout";
        readonly 505: "HTTP Version Not Supported";
        readonly 506: "Variant Also Negotiates";
        readonly 507: "Insufficient Storage";
        readonly 508: "Loop Detected";
        readonly 510: "Not Extended";
        readonly 511: "Network Authentication Required";
      }[Code] : Code)>(code: Code, response?: T) => import("elysia").ElysiaCustomStatusResponse<Code, T, Code extends "Continue" | "Switching Protocols" | "Processing" | "Early Hints" | "OK" | "Created" | "Accepted" | "Non-Authoritative Information" | "No Content" | "Reset Content" | "Partial Content" | "Multi-Status" | "Already Reported" | "Multiple Choices" | "Moved Permanently" | "Found" | "See Other" | "Not Modified" | "Temporary Redirect" | "Permanent Redirect" | "Bad Request" | "Unauthorized" | "Payment Required" | "Forbidden" | "Not Found" | "Method Not Allowed" | "Not Acceptable" | "Proxy Authentication Required" | "Request Timeout" | "Conflict" | "Gone" | "Length Required" | "Precondition Failed" | "Payload Too Large" | "URI Too Long" | "Unsupported Media Type" | "Range Not Satisfiable" | "Expectation Failed" | "I'm a teapot" | "Enhance Your Calm" | "Misdirected Request" | "Unprocessable Content" | "Locked" | "Failed Dependency" | "Too Early" | "Upgrade Required" | "Precondition Required" | "Too Many Requests" | "Request Header Fields Too Large" | "Unavailable For Legal Reasons" | "Internal Server Error" | "Not Implemented" | "Bad Gateway" | "Service Unavailable" | "Gateway Timeout" | "HTTP Version Not Supported" | "Variant Also Negotiates" | "Insufficient Storage" | "Loop Detected" | "Not Extended" | "Network Authentication Required" ? {
        readonly Continue: 100;
        readonly "Switching Protocols": 101;
        readonly Processing: 102;
        readonly "Early Hints": 103;
        readonly OK: 200;
        readonly Created: 201;
        readonly Accepted: 202;
        readonly "Non-Authoritative Information": 203;
        readonly "No Content": 204;
        readonly "Reset Content": 205;
        readonly "Partial Content": 206;
        readonly "Multi-Status": 207;
        readonly "Already Reported": 208;
        readonly "Multiple Choices": 300;
        readonly "Moved Permanently": 301;
        readonly Found: 302;
        readonly "See Other": 303;
        readonly "Not Modified": 304;
        readonly "Temporary Redirect": 307;
        readonly "Permanent Redirect": 308;
        readonly "Bad Request": 400;
        readonly Unauthorized: 401;
        readonly "Payment Required": 402;
        readonly Forbidden: 403;
        readonly "Not Found": 404;
        readonly "Method Not Allowed": 405;
        readonly "Not Acceptable": 406;
        readonly "Proxy Authentication Required": 407;
        readonly "Request Timeout": 408;
        readonly Conflict: 409;
        readonly Gone: 410;
        readonly "Length Required": 411;
        readonly "Precondition Failed": 412;
        readonly "Payload Too Large": 413;
        readonly "URI Too Long": 414;
        readonly "Unsupported Media Type": 415;
        readonly "Range Not Satisfiable": 416;
        readonly "Expectation Failed": 417;
        readonly "I'm a teapot": 418;
        readonly "Enhance Your Calm": 420;
        readonly "Misdirected Request": 421;
        readonly "Unprocessable Content": 422;
        readonly Locked: 423;
        readonly "Failed Dependency": 424;
        readonly "Too Early": 425;
        readonly "Upgrade Required": 426;
        readonly "Precondition Required": 428;
        readonly "Too Many Requests": 429;
        readonly "Request Header Fields Too Large": 431;
        readonly "Unavailable For Legal Reasons": 451;
        readonly "Internal Server Error": 500;
        readonly "Not Implemented": 501;
        readonly "Bad Gateway": 502;
        readonly "Service Unavailable": 503;
        readonly "Gateway Timeout": 504;
        readonly "HTTP Version Not Supported": 505;
        readonly "Variant Also Negotiates": 506;
        readonly "Insufficient Storage": 507;
        readonly "Loop Detected": 508;
        readonly "Not Extended": 510;
        readonly "Network Authentication Required": 511;
      }[Code] : Code>;
    }) => Rules<D> | null;
    hook: <K_1 extends keyof PermixHooks<D>>(name: K_1, fn: PermixHooks<D>[K_1]) => () => void;
    hookOnce: <K_1 extends keyof PermixHooks<D>>(name: K_1, fn: PermixHooks<D>[K_1]) => void;
    readonly key: string | symbol;
    $inferDefinition: D;
    $inferPath: D extends readonly Action[] ? `${ActionName<D[number]>}` : { [K in keyof D & string]: D[K] extends Definition ? D[K] extends infer T ? T extends D[K] ? T extends readonly Action[] ? `${K}.${ActionName<T[number]>}` : { [K_2 in keyof T & string]: T[K_2] extends Definition ? T[K_2] extends infer T_1 ? T_1 extends T[K_2] ? T_1 extends readonly Action[] ? `${K}.${K_2}.${ActionName<T_1[number]>}` : { [K_3 in keyof T_1 & string]: T_1[K_3] extends Definition ? T_1[K_3] extends infer T_2 ? T_2 extends T_1[K_3] ? T_2 extends readonly Action[] ? `${K}.${K_2}.${K_3}.${ActionName<T_2[number]>}` : { [K_4 in keyof T_2 & string]: T_2[K_4] extends Definition ? T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends readonly Action[] ? `${K}.${K_2}.${K_3}.${K_4}.${ActionName<T_3[number]>}` : { [K_5 in keyof T_3 & string]: T_3[K_5] extends Definition ? T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends readonly Action[] ? `${K}.${K_2}.${K_3}.${K_4}.${K_5}.${ActionName<T_4[number]>}` : { [K_6 in keyof T_4 & string]: T_4[K_6] extends Definition ? T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends readonly Action[] ? `${K}.${K_2}.${K_3}.${K_4}.${K_5}.${K_6}.${ActionName<T_5[number]>}` : { [K_7 in keyof T_5 & string]: T_5[K_7] extends Definition ? T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends readonly Action[] ? `${K}.${K_2}.${K_3}.${K_4}.${K_5}.${K_6}.${K_7}.${ActionName<T_6[number]>}` : { [K_8 in keyof T_6 & string]: T_6[K_8] extends Definition ? T_6[K_8] extends infer T_7 ? T_7 extends T_6[K_8] ? T_7 extends readonly Action[] ? `${K}.${K_2}.${K_3}.${K_4}.${K_5}.${K_6}.${K_7}.${K_8}.${ActionName<T_7[number]>}` : { [K_9 in keyof T_7 & string]: T_7[K_9] extends Definition ? T_7[K_9] extends infer T_8 ? T_8 extends T_7[K_9] ? T_8 extends readonly Action[] ? `${K}.${K_2}.${K_3}.${K_4}.${K_5}.${K_6}.${K_7}.${K_8}.${K_9}.${ActionName<T_8[number]>}` : { [K_10 in keyof T_8 & string]: T_8[K_10] extends Definition ? never : never }[keyof T_8 & string] : never : never : never }[keyof T_7 & string] : never : never : never }[keyof T_6 & string] : never : never : never }[keyof T_5 & string] : never : never : never }[keyof T_4 & string] : never : never : never }[keyof T_3 & string] : never : never : never }[keyof T_2 & string] : never : never : never }[keyof T_1 & string] : never : never : never }[keyof T & string] : never : never : never }[keyof D & string];
  };
};
type ElysiaPermix<D extends Definition> = ReturnType<typeof createPermix<D>>;
//#endregion
export { ElysiaPermix, MiddlewareContext, PermixOptions, createPermix };