import { z } from 'zod';
import { Endpoint } from './common';
import { roleSchema, Group, Role } from './group-role';
import { MappingRule } from './mapping-rule';
declare const createRoleRequestBodySchema: z.ZodObject<{
    roleId: z.ZodString;
    name: z.ZodString;
    description: z.ZodString;
}, z.core.$strip>;
type CreateRoleRequestBody = z.infer<typeof createRoleRequestBodySchema>;
declare const createRoleResponseBodySchema: z.ZodObject<{
    roleId: z.ZodString;
    name: z.ZodString;
    description: z.ZodString;
}, z.core.$strip>;
type CreateRoleResponseBody = z.infer<typeof createRoleResponseBodySchema>;
declare const updateRoleRequestBodySchema: z.ZodObject<{
    description: z.ZodString;
    name: z.ZodString;
}, z.core.$strip>;
type UpdateRoleRequestBody = z.infer<typeof updateRoleRequestBodySchema>;
declare const updateRoleResponseBodySchema: z.ZodObject<{
    roleId: z.ZodString;
    name: z.ZodString;
    description: z.ZodString;
}, z.core.$strip>;
type UpdateRoleResponseBody = z.infer<typeof updateRoleResponseBodySchema>;
declare const queryRolesRequestBodySchema: z.ZodObject<{
    sort: z.ZodOptional<z.ZodArray<z.ZodObject<{
        field: z.ZodEnum<{
            name: "name";
            roleId: "roleId";
        }>;
        order: z.ZodOptional<z.ZodEnum<{
            asc: "asc";
            desc: "desc";
        }>>;
    }, z.core.$strip>>>;
    page: z.ZodOptional<z.ZodObject<{
        from: z.ZodOptional<z.ZodNumber>;
        limit: z.ZodOptional<z.ZodNumber>;
        before: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        after: z.ZodOptional<z.ZodOptional<z.ZodString>>;
    }, z.core.$strip>>;
    filter: z.ZodOptional<z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        roleId: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>;
type QueryRolesRequestBody = z.infer<typeof queryRolesRequestBodySchema>;
declare const queryRolesResponseBodySchema: z.ZodType<import('./common').QueryResponseBody<{
    roleId: string;
    name: string;
    description: string;
}>, unknown, z.core.$ZodTypeInternals<import('./common').QueryResponseBody<{
    roleId: string;
    name: string;
    description: string;
}>, unknown>>;
type QueryRolesResponseBody = z.infer<typeof queryRolesResponseBodySchema>;
declare const queryUsersByRoleRequestBodySchema: z.ZodObject<{
    sort: z.ZodOptional<z.ZodArray<z.ZodObject<{
        field: z.ZodEnum<{
            username: "username";
        }>;
        order: z.ZodOptional<z.ZodEnum<{
            asc: "asc";
            desc: "desc";
        }>>;
    }, z.core.$strip>>>;
    page: z.ZodOptional<z.ZodObject<{
        from: z.ZodOptional<z.ZodNumber>;
        limit: z.ZodOptional<z.ZodNumber>;
        before: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        after: z.ZodOptional<z.ZodOptional<z.ZodString>>;
    }, z.core.$strip>>;
    filter: z.ZodOptional<z.ZodNever>;
}, z.core.$strip>;
type QueryUsersByRoleRequestBody = z.infer<typeof queryUsersByRoleRequestBodySchema>;
declare const queryUsersByRoleResponseBodySchema: z.ZodType<import('./common').QueryResponseBody<{
    username: string;
}>, unknown, z.core.$ZodTypeInternals<import('./common').QueryResponseBody<{
    username: string;
}>, unknown>>;
type QueryUsersByRoleResponseBody = z.infer<typeof queryUsersByRoleResponseBodySchema>;
declare const queryClientsByRoleRequestBodySchema: z.ZodObject<{
    sort: z.ZodOptional<z.ZodArray<z.ZodObject<{
        field: z.ZodEnum<{
            clientId: "clientId";
        }>;
        order: z.ZodOptional<z.ZodEnum<{
            asc: "asc";
            desc: "desc";
        }>>;
    }, z.core.$strip>>>;
    page: z.ZodOptional<z.ZodObject<{
        from: z.ZodOptional<z.ZodNumber>;
        limit: z.ZodOptional<z.ZodNumber>;
        before: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        after: z.ZodOptional<z.ZodOptional<z.ZodString>>;
    }, z.core.$strip>>;
    filter: z.ZodOptional<z.ZodNever>;
}, z.core.$strip>;
type QueryClientsByRoleRequestBody = z.infer<typeof queryClientsByRoleRequestBodySchema>;
declare const queryClientsByRoleResponseBodySchema: z.ZodType<import('./common').QueryResponseBody<{
    clientId: string;
}>, unknown, z.core.$ZodTypeInternals<import('./common').QueryResponseBody<{
    clientId: string;
}>, unknown>>;
type QueryClientsByRoleResponseBody = z.infer<typeof queryClientsByRoleResponseBodySchema>;
declare const queryGroupsByRoleRequestBodySchema: z.ZodObject<{
    sort: z.ZodOptional<z.ZodArray<z.ZodObject<{
        field: z.ZodEnum<{
            name: "name";
            groupId: "groupId";
        }>;
        order: z.ZodOptional<z.ZodEnum<{
            asc: "asc";
            desc: "desc";
        }>>;
    }, z.core.$strip>>>;
    page: z.ZodOptional<z.ZodObject<{
        from: z.ZodOptional<z.ZodNumber>;
        limit: z.ZodOptional<z.ZodNumber>;
        before: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        after: z.ZodOptional<z.ZodOptional<z.ZodString>>;
    }, z.core.$strip>>;
    filter: z.ZodOptional<z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        groupId: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>;
type QueryGroupsByRoleRequestBody = z.infer<typeof queryGroupsByRoleRequestBodySchema>;
declare const queryGroupsByRoleResponseBodySchema: z.ZodType<import('./common').QueryResponseBody<{
    groupId: string;
    name: string;
    description: string;
}>, unknown, z.core.$ZodTypeInternals<import('./common').QueryResponseBody<{
    groupId: string;
    name: string;
    description: string;
}>, unknown>>;
type QueryGroupsByRoleResponseBody = z.infer<typeof queryGroupsByRoleResponseBodySchema>;
declare const queryMappingRulesByRoleRequestBodySchema: z.ZodObject<{
    sort: z.ZodOptional<z.ZodArray<z.ZodObject<{
        field: z.ZodEnum<{
            name: "name";
            claimName: "claimName";
            claimValue: "claimValue";
        }>;
        order: z.ZodOptional<z.ZodEnum<{
            asc: "asc";
            desc: "desc";
        }>>;
    }, z.core.$strip>>>;
    page: z.ZodOptional<z.ZodObject<{
        from: z.ZodOptional<z.ZodNumber>;
        limit: z.ZodOptional<z.ZodNumber>;
        before: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        after: z.ZodOptional<z.ZodOptional<z.ZodString>>;
    }, z.core.$strip>>;
    filter: z.ZodOptional<z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        claimName: z.ZodOptional<z.ZodString>;
        claimValue: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>;
type QueryMappingRulesByRoleRequestBody = z.infer<typeof queryMappingRulesByRoleRequestBodySchema>;
declare const queryMappingRulesByRoleResponseBodySchema: z.ZodType<import('./common').QueryResponseBody<{
    mappingId: string;
    claimName: string;
    claimValue: string;
    name: string;
}>, unknown, z.core.$ZodTypeInternals<import('./common').QueryResponseBody<{
    mappingId: string;
    claimName: string;
    claimValue: string;
    name: string;
}>, unknown>>;
type QueryMappingRulesByRoleResponseBody = z.infer<typeof queryMappingRulesByRoleResponseBodySchema>;
declare const createRole: Endpoint;
declare const getRole: Endpoint<Pick<Role, 'roleId'>>;
declare const updateRole: Endpoint<Pick<Role, 'roleId'>>;
declare const deleteRole: Endpoint<Pick<Role, 'roleId'>>;
declare const queryRoles: Endpoint;
declare const queryUsersByRole: Endpoint<Pick<Role, 'roleId'>>;
declare const queryClientsByRole: Endpoint<Pick<Role, 'roleId'>>;
declare const assignUserToRole: Endpoint<Pick<Role, 'roleId'> & {
    username: string;
}>;
declare const unassignUserFromRole: Endpoint<Pick<Role, 'roleId'> & {
    username: string;
}>;
declare const assignClientToRole: Endpoint<Pick<Role, 'roleId'> & {
    clientId: string;
}>;
declare const unassignClientFromRole: Endpoint<Pick<Role, 'roleId'> & {
    clientId: string;
}>;
declare const assignGroupToRole: Endpoint<Pick<Role, 'roleId'> & Pick<Group, 'groupId'>>;
declare const unassignGroupFromRole: Endpoint<Pick<Role, 'roleId'> & Pick<Group, 'groupId'>>;
declare const queryGroupsByRole: Endpoint<Pick<Role, 'roleId'>>;
declare const assignMappingToRole: Endpoint<Pick<Role, 'roleId'> & Pick<MappingRule, 'mappingId'>>;
declare const unassignMappingFromRole: Endpoint<Pick<Role, 'roleId'> & Pick<MappingRule, 'mappingId'>>;
declare const queryMappingRulesByRole: Endpoint<Pick<Role, 'roleId'>>;
export { createRole, getRole, updateRole, deleteRole, queryRoles, queryUsersByRole, queryClientsByRole, assignUserToRole, unassignUserFromRole, assignClientToRole, unassignClientFromRole, assignGroupToRole, unassignGroupFromRole, queryGroupsByRole, assignMappingToRole, unassignMappingFromRole, queryMappingRulesByRole, roleSchema, createRoleRequestBodySchema, createRoleResponseBodySchema, updateRoleRequestBodySchema, updateRoleResponseBodySchema, queryRolesRequestBodySchema, queryRolesResponseBodySchema, queryUsersByRoleRequestBodySchema, queryUsersByRoleResponseBodySchema, queryClientsByRoleRequestBodySchema, queryClientsByRoleResponseBodySchema, queryGroupsByRoleRequestBodySchema, queryGroupsByRoleResponseBodySchema, queryMappingRulesByRoleRequestBodySchema, queryMappingRulesByRoleResponseBodySchema, };
export type { Role, CreateRoleRequestBody, CreateRoleResponseBody, UpdateRoleRequestBody, UpdateRoleResponseBody, QueryRolesRequestBody, QueryRolesResponseBody, QueryUsersByRoleRequestBody, QueryUsersByRoleResponseBody, QueryClientsByRoleRequestBody, QueryClientsByRoleResponseBody, QueryGroupsByRoleRequestBody, QueryGroupsByRoleResponseBody, QueryMappingRulesByRoleRequestBody, QueryMappingRulesByRoleResponseBody, };
