import type { Policy } from "@getstrata/core/auth/policy"; import type { RouteRequest } from "./route"; interface RouteModelAuthorization { resource: string; action: keyof Policy; requireIfMatch?: boolean; /** Opt in (`true`) or out (`false`) of GET ETags. HTML and composites are off by default. */ etag?: boolean; } declare function securedBindRouteModel, TModel, TParam extends keyof TParams & string>(param: TParam, resolver: (id: number, request: RouteRequest) => Promise, authorization: RouteModelAuthorization, handler: (request: RouteRequest, model: TModel) => Response | Promise): (request: RouteRequest) => Promise; declare function securedBindRouteModelByKey, TModel, TParam extends keyof TParams & string>(param: TParam, resolver: (key: string, request: RouteRequest) => Promise, authorization: RouteModelAuthorization, handler: (request: RouteRequest, model: TModel) => Response | Promise): (request: RouteRequest) => Promise; export type { RouteModelAuthorization }; export { securedBindRouteModel, securedBindRouteModelByKey };