import { OpenAPIHono } from "@hono/zod-openapi";
import { Bindings, Variables } from "../../types";
export declare const roleRoutes: OpenAPIHono<{
    Bindings: Bindings;
    Variables: Variables;
}, {
    "/": {
        $get: {
            input: {
                query: {
                    page?: string | undefined;
                    per_page?: string | undefined;
                    include_totals?: string | undefined;
                    from?: string | undefined;
                    take?: string | undefined;
                    sort?: string | undefined;
                    q?: string | undefined;
                    from_date?: unknown;
                    to_date?: unknown;
                };
            } & {
                header: {
                    "tenant-id"?: string | undefined;
                };
            };
            output: {
                name: string;
                id: string;
                description?: string | undefined;
                is_system?: boolean | undefined;
                metadata?: {
                    [x: string]: any;
                } | undefined;
                created_at?: string | undefined;
                updated_at?: string | undefined;
            }[] | {
                start: number;
                limit: number;
                length: number;
                roles: {
                    name: string;
                    id: string;
                    description?: string | undefined;
                    is_system?: boolean | undefined;
                    metadata?: {
                        [x: string]: any;
                    } | undefined;
                    created_at?: string | undefined;
                    updated_at?: string | undefined;
                }[];
                total?: number | undefined;
            };
            outputFormat: "json";
            status: 200;
        };
    };
} & {
    "/:id": {
        $get: {
            input: {
                param: {
                    id: string;
                };
            } & {
                header: {
                    "tenant-id"?: string | undefined;
                };
            };
            output: {
                name: string;
                id: string;
                description?: string | undefined;
                is_system?: boolean | undefined;
                metadata?: {
                    [x: string]: any;
                } | undefined;
                created_at?: string | undefined;
                updated_at?: string | undefined;
            };
            outputFormat: "json";
            status: 200;
        };
    };
} & {
    "/": {
        $post: {
            input: {
                header: {
                    "tenant-id"?: string | undefined;
                };
            } & {
                json: {
                    name: string;
                    id?: string | undefined;
                    description?: string | undefined;
                    is_system?: boolean | undefined;
                    metadata?: Record<string, any> | undefined;
                };
            };
            output: {
                name: string;
                id: string;
                description?: string | undefined;
                is_system?: boolean | undefined;
                metadata?: {
                    [x: string]: any;
                } | undefined;
                created_at?: string | undefined;
                updated_at?: string | undefined;
            };
            outputFormat: "json";
            status: 201;
        };
    };
} & {
    "/:id": {
        $patch: {
            input: {
                param: {
                    id: string;
                };
            } & {
                header: {
                    "tenant-id"?: string | undefined;
                };
            } & {
                json: {
                    id?: string | undefined;
                    name?: string | undefined;
                    description?: string | undefined;
                    is_system?: boolean | undefined;
                    metadata?: Record<string, any> | undefined;
                };
            };
            output: {
                name: string;
                id: string;
                description?: string | undefined;
                is_system?: boolean | undefined;
                metadata?: {
                    [x: string]: any;
                } | undefined;
                created_at?: string | undefined;
                updated_at?: string | undefined;
            };
            outputFormat: "json";
            status: 200;
        };
    };
} & {
    "/:id": {
        $delete: {
            input: {
                param: {
                    id: string;
                };
            } & {
                header: {
                    "tenant-id"?: string | undefined;
                };
            };
            output: {};
            outputFormat: string;
            status: 200;
        };
    };
} & {
    "/:id/permissions": {
        $get: {
            input: {
                param: {
                    id: string;
                };
            } & {
                query: {
                    page?: string | undefined;
                    per_page?: string | undefined;
                    include_totals?: string | undefined;
                    from?: string | undefined;
                    take?: string | undefined;
                    sort?: string | undefined;
                    q?: string | undefined;
                    from_date?: unknown;
                    to_date?: unknown;
                };
            } & {
                header: {
                    "tenant-id"?: string | undefined;
                };
            };
            output: {
                role_id: string;
                resource_server_identifier: string;
                permission_name: string;
                created_at: string;
            }[] | {
                start: number;
                limit: number;
                length: number;
                permissions: {
                    role_id: string;
                    resource_server_identifier: string;
                    permission_name: string;
                    created_at: string;
                }[];
                total?: number | undefined;
            };
            outputFormat: "json";
            status: 200;
        };
    };
} & {
    "/:id/permissions": {
        $post: {
            input: {
                param: {
                    id: string;
                };
            } & {
                header: {
                    "tenant-id"?: string | undefined;
                };
            } & {
                json: {
                    permissions: {
                        permission_name: string;
                        resource_server_identifier: string;
                    }[];
                };
            };
            output: {};
            outputFormat: string;
            status: 204;
        };
    };
} & {
    "/:id/permissions": {
        $delete: {
            input: {
                param: {
                    id: string;
                };
            } & {
                header: {
                    "tenant-id"?: string | undefined;
                };
            } & {
                json: {
                    permissions: {
                        permission_name: string;
                        resource_server_identifier: string;
                    }[];
                };
            };
            output: {};
            outputFormat: string;
            status: 200;
        };
    };
}, "/">;
