import { z } from 'zod';
import { Endpoint } from './common';
import { MappingRule } from './mapping-rule';
import { groupSchema, Group } from './group-role';
declare const createGroupRequestBodySchema: z.ZodObject<{
    groupId: z.ZodString;
    name: z.ZodString;
    description: z.ZodString;
}, z.core.$strip>;
type CreateGroupRequestBody = z.infer<typeof createGroupRequestBodySchema>;
declare const createGroupResponseBodySchema: z.ZodObject<{
    groupId: z.ZodString;
    name: z.ZodString;
    description: z.ZodString;
}, z.core.$strip>;
type CreateGroupResponseBody = z.infer<typeof createGroupResponseBodySchema>;
declare const createGroup: Endpoint;
declare const getGroup: Endpoint<Pick<Group, 'groupId'>>;
declare const getGroupResponseBodySchema: z.ZodObject<{
    groupId: z.ZodString;
    name: z.ZodString;
    description: z.ZodString;
}, z.core.$strip>;
type GetGroupResponseBody = z.infer<typeof getGroupResponseBodySchema>;
declare const updateGroupRequestBodySchema: z.ZodObject<{
    description: z.ZodString;
    name: z.ZodString;
}, z.core.$strip>;
type UpdateGroupRequestBody = z.infer<typeof updateGroupRequestBodySchema>;
declare const updateGroupResponseBodySchema: z.ZodObject<{
    groupId: z.ZodString;
    name: z.ZodString;
    description: z.ZodString;
}, z.core.$strip>;
type UpdateGroupResponseBody = z.infer<typeof updateGroupResponseBodySchema>;
declare const updateGroup: Endpoint<Pick<Group, 'groupId'>>;
declare const deleteGroup: Endpoint<Pick<Group, 'groupId'>>;
declare const queryGroupsRequestBodySchema: 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 QueryGroupsRequestBody = z.infer<typeof queryGroupsRequestBodySchema>;
declare const queryGroupsResponseBodySchema: 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 QueryGroupsResponseBody = z.infer<typeof queryGroupsResponseBodySchema>;
declare const queryGroups: Endpoint;
declare const queryUsersByGroupRequestBodySchema: 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 QueryUsersByGroupRequestBody = z.infer<typeof queryUsersByGroupRequestBodySchema>;
declare const queryUsersByGroupResponseBodySchema: z.ZodType<import('./common').QueryResponseBody<{
    username: string;
}>, unknown, z.core.$ZodTypeInternals<import('./common').QueryResponseBody<{
    username: string;
}>, unknown>>;
type QueryUsersByGroupResponseBody = z.infer<typeof queryUsersByGroupResponseBodySchema>;
declare const queryUsersByGroup: Endpoint<Pick<Group, 'groupId'>>;
declare const queryClientsByGroupRequestBodySchema: 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 QueryClientsByGroupRequestBody = z.infer<typeof queryClientsByGroupRequestBodySchema>;
declare const queryClientsByGroupResponseBodySchema: z.ZodType<import('./common').QueryResponseBody<{
    clientId: string;
}>, unknown, z.core.$ZodTypeInternals<import('./common').QueryResponseBody<{
    clientId: string;
}>, unknown>>;
type QueryClientsByGroupResponseBody = z.infer<typeof queryClientsByGroupResponseBodySchema>;
declare const queryClientsByGroup: Endpoint<Pick<Group, 'groupId'>>;
declare const queryRolesByGroupRequestBodySchema: 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<{
        roleId: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>;
type QueryRolesByGroupRequestBody = z.infer<typeof queryRolesByGroupRequestBodySchema>;
declare const queryRolesByGroupResponseBodySchema: z.ZodType<import('./common').QueryResponseBody<{
    name: string;
    roleId: string;
}>, unknown, z.core.$ZodTypeInternals<import('./common').QueryResponseBody<{
    name: string;
    roleId: string;
}>, unknown>>;
type QueryRolesByGroupResponseBody = z.infer<typeof queryRolesByGroupResponseBodySchema>;
declare const queryRolesByGroup: Endpoint<Pick<Group, 'groupId'>>;
declare const queryMappingRulesByGroupRequestBodySchema: 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 QueryMappingRulesByGroupRequestBody = z.infer<typeof queryMappingRulesByGroupRequestBodySchema>;
declare const queryMappingRulesByGroupResponseBodySchema: 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 QueryMappingRulesByGroupResponseBody = z.infer<typeof queryMappingRulesByGroupResponseBodySchema>;
declare const queryMappingRulesByGroup: Endpoint<Pick<Group, 'groupId'>>;
declare const assignUserToGroup: Endpoint<Pick<Group, 'groupId'> & {
    username: string;
}>;
declare const unassignUserFromGroup: Endpoint<Pick<Group, 'groupId'> & {
    username: string;
}>;
declare const assignClientToGroup: Endpoint<Pick<Group, 'groupId'> & {
    clientId: string;
}>;
declare const unassignClientFromGroup: Endpoint<Pick<Group, 'groupId'> & {
    clientId: string;
}>;
declare const assignMappingToGroup: Endpoint<Pick<Group, 'groupId'> & Pick<MappingRule, 'mappingId'>>;
declare const unassignMappingFromGroup: Endpoint<Pick<Group, 'groupId'> & Pick<MappingRule, 'mappingId'>>;
export { createGroup, getGroup, updateGroup, deleteGroup, queryGroups, queryUsersByGroup, queryClientsByGroup, queryRolesByGroup, queryMappingRulesByGroup, assignUserToGroup, unassignUserFromGroup, assignClientToGroup, unassignClientFromGroup, assignMappingToGroup, unassignMappingFromGroup, createGroupRequestBodySchema, createGroupResponseBodySchema, getGroupResponseBodySchema, updateGroupRequestBodySchema, updateGroupResponseBodySchema, queryGroupsRequestBodySchema, queryGroupsResponseBodySchema, queryUsersByGroupRequestBodySchema, queryUsersByGroupResponseBodySchema, queryClientsByGroupRequestBodySchema, queryClientsByGroupResponseBodySchema, queryRolesByGroupRequestBodySchema, queryRolesByGroupResponseBodySchema, queryMappingRulesByGroupRequestBodySchema, queryMappingRulesByGroupResponseBodySchema, groupSchema, };
export type { Group, CreateGroupRequestBody, CreateGroupResponseBody, GetGroupResponseBody, UpdateGroupRequestBody, UpdateGroupResponseBody, QueryGroupsRequestBody, QueryGroupsResponseBody, QueryUsersByGroupRequestBody, QueryUsersByGroupResponseBody, QueryClientsByGroupRequestBody, QueryClientsByGroupResponseBody, QueryRolesByGroupRequestBody, QueryRolesByGroupResponseBody, QueryMappingRulesByGroupRequestBody, QueryMappingRulesByGroupResponseBody, };
