import { access, user } from '@synnaxlabs/client';
import { z } from 'zod';
import { role } from './aether';
import { Flux } from '../../flux';
import { List } from '../../list';
export declare const RESOURCE_NAME = "Role";
export declare const PLURAL_RESOURCE_NAME = "Roles";
export interface RetrieveQuery {
    key: string;
}
export declare const useRetrieve: Flux.UseRetrieve<RetrieveQuery, {
    key: string;
    name: string;
    description?: string | undefined;
    internal?: boolean | undefined;
}>;
export interface ListQuery extends List.PagerParams {
}
export declare const useList: Flux.UseList<ListQuery, string, {
    key: string;
    name: string;
    description?: string | undefined;
    internal?: boolean | undefined;
}>;
export type DeleteParams = access.role.Key | access.role.Key[];
export declare const useDelete: Flux.UseUpdate<DeleteParams, DeleteParams, z.ZodNever, false, role.FluxSubStore>;
export interface RenameParams {
    key: access.role.Key;
    name: string;
}
export declare const useRename: Flux.UseUpdate<RenameParams, RenameParams, z.ZodNever, false, role.FluxSubStore>;
export interface ChangeRoleFormQuery {
    key: user.Key;
}
export declare const changeRoleFormSchema: z.ZodObject<{
    key: z.ZodUUID;
    role: z.ZodUUID;
}, z.core.$strip>;
export declare const useChangeRoleForm: Flux.UseForm<ChangeRoleFormQuery, z.ZodObject<{
    key: z.ZodUUID;
    role: z.ZodUUID;
}, z.core.$strip>, role.FluxSubStore>;
export declare const formSchema: z.ZodObject<{
    key: z.ZodOptional<z.ZodUUID>;
    name: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    internal: z.ZodOptional<z.ZodBoolean>;
    policies: z.ZodArray<z.ZodUUID>;
}, z.core.$strip>;
export declare const useForm: Flux.UseForm<Partial<RetrieveQuery>, z.ZodObject<{
    key: z.ZodOptional<z.ZodUUID>;
    name: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    internal: z.ZodOptional<z.ZodBoolean>;
    policies: z.ZodArray<z.ZodUUID>;
}, z.core.$strip>, role.FluxSubStore>;
//# sourceMappingURL=queries.d.ts.map