import type { PaginatedResult, UserGroup, UserGroupDeleted, UserGroupParams } from "@lokalise/node-api";
import { z } from "zod";
/**
 * Usergroups domain type definitions and Zod schemas.
 * Generated on 2025-08-11 for User groups management for team-based permissions.
 */
export type { UserGroup, UserGroupParams, UserGroupDeleted, PaginatedResult };
/**
 * Zod schema for contributor rights
 */
export declare const ContributorRightsSchema: z.ZodEnum<["upload", "activity", "download", "settings", "create_branches", "statistics", "keys", "screenshots", "glossary", "contributors", "languages", "tasks"]>;
/**
 * Zod schema for language permissions
 */
export declare const LanguagePermissionSchema: z.ZodObject<{
    langId: z.ZodNumber;
    langIso: z.ZodString;
    langName: z.ZodString;
    isWritable: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
    langId: number;
    langIso: string;
    langName: string;
    isWritable: boolean;
}, {
    langId: number;
    langIso: string;
    langName: string;
    isWritable: boolean;
}>;
/**
 * Zod schema for the list user groups tool arguments.
 */
export declare const ListUsergroupsToolArgs: z.ZodObject<{
    teamId: z.ZodString;
    limit: z.ZodOptional<z.ZodNumber>;
    page: z.ZodOptional<z.ZodNumber>;
}, "strict", z.ZodTypeAny, {
    teamId: string;
    page?: number | undefined;
    limit?: number | undefined;
}, {
    teamId: string;
    page?: number | undefined;
    limit?: number | undefined;
}>;
export type ListUsergroupsToolArgsType = z.infer<typeof ListUsergroupsToolArgs>;
/**
 * Zod schema for the get user group details tool arguments.
 */
export declare const GetUsergroupsToolArgs: z.ZodObject<{
    teamId: z.ZodString;
    groupId: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
}, "strict", z.ZodTypeAny, {
    teamId: string;
    groupId: string | number;
}, {
    teamId: string;
    groupId: string | number;
}>;
export type GetUsergroupsToolArgsType = z.infer<typeof GetUsergroupsToolArgs>;
/**
 * Zod schema for the create user group tool arguments.
 */
export declare const CreateUsergroupsToolArgs: z.ZodObject<{
    teamId: z.ZodString;
    name: z.ZodString;
    isReviewer: z.ZodBoolean;
    isAdmin: z.ZodBoolean;
    adminRights: z.ZodOptional<z.ZodArray<z.ZodEnum<["upload", "activity", "download", "settings", "create_branches", "statistics", "keys", "screenshots", "glossary", "contributors", "languages", "tasks"]>, "many">>;
    languages: z.ZodOptional<z.ZodArray<z.ZodObject<{
        langId: z.ZodNumber;
        isWritable: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        langId: number;
        isWritable?: boolean | undefined;
    }, {
        langId: number;
        isWritable?: boolean | undefined;
    }>, "many">>;
    projects: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">>;
    members: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">>;
}, "strict", z.ZodTypeAny, {
    name: string;
    teamId: string;
    isReviewer: boolean;
    isAdmin: boolean;
    languages?: {
        langId: number;
        isWritable?: boolean | undefined;
    }[] | undefined;
    projects?: (string | number)[] | undefined;
    adminRights?: ("keys" | "languages" | "contributors" | "upload" | "activity" | "download" | "settings" | "create_branches" | "statistics" | "screenshots" | "glossary" | "tasks")[] | undefined;
    members?: (string | number)[] | undefined;
}, {
    name: string;
    teamId: string;
    isReviewer: boolean;
    isAdmin: boolean;
    languages?: {
        langId: number;
        isWritable?: boolean | undefined;
    }[] | undefined;
    projects?: (string | number)[] | undefined;
    adminRights?: ("keys" | "languages" | "contributors" | "upload" | "activity" | "download" | "settings" | "create_branches" | "statistics" | "screenshots" | "glossary" | "tasks")[] | undefined;
    members?: (string | number)[] | undefined;
}>;
export type CreateUsergroupsToolArgsType = z.infer<typeof CreateUsergroupsToolArgs>;
/**
 * Zod schema for the update user group tool arguments.
 */
export declare const UpdateUsergroupsToolArgs: z.ZodObject<{
    teamId: z.ZodString;
    groupId: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
    name: z.ZodString;
    isReviewer: z.ZodBoolean;
    isAdmin: z.ZodBoolean;
    adminRights: z.ZodOptional<z.ZodArray<z.ZodEnum<["upload", "activity", "download", "settings", "create_branches", "statistics", "keys", "screenshots", "glossary", "contributors", "languages", "tasks"]>, "many">>;
    languages: z.ZodOptional<z.ZodArray<z.ZodObject<{
        langId: z.ZodNumber;
        isWritable: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        langId: number;
        isWritable?: boolean | undefined;
    }, {
        langId: number;
        isWritable?: boolean | undefined;
    }>, "many">>;
}, "strict", z.ZodTypeAny, {
    name: string;
    teamId: string;
    groupId: string | number;
    isReviewer: boolean;
    isAdmin: boolean;
    languages?: {
        langId: number;
        isWritable?: boolean | undefined;
    }[] | undefined;
    adminRights?: ("keys" | "languages" | "contributors" | "upload" | "activity" | "download" | "settings" | "create_branches" | "statistics" | "screenshots" | "glossary" | "tasks")[] | undefined;
}, {
    name: string;
    teamId: string;
    groupId: string | number;
    isReviewer: boolean;
    isAdmin: boolean;
    languages?: {
        langId: number;
        isWritable?: boolean | undefined;
    }[] | undefined;
    adminRights?: ("keys" | "languages" | "contributors" | "upload" | "activity" | "download" | "settings" | "create_branches" | "statistics" | "screenshots" | "glossary" | "tasks")[] | undefined;
}>;
export type UpdateUsergroupsToolArgsType = z.infer<typeof UpdateUsergroupsToolArgs>;
/**
 * Zod schema for the delete user group tool arguments.
 */
export declare const DeleteUsergroupsToolArgs: z.ZodObject<{
    teamId: z.ZodString;
    groupId: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
}, "strict", z.ZodTypeAny, {
    teamId: string;
    groupId: string | number;
}, {
    teamId: string;
    groupId: string | number;
}>;
export type DeleteUsergroupsToolArgsType = z.infer<typeof DeleteUsergroupsToolArgs>;
/**
 * Zod schema for add members to group tool arguments.
 */
export declare const AddMembersToolArgs: z.ZodObject<{
    teamId: z.ZodString;
    groupId: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
    userIds: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">;
}, "strict", z.ZodTypeAny, {
    teamId: string;
    groupId: string | number;
    userIds: (string | number)[];
}, {
    teamId: string;
    groupId: string | number;
    userIds: (string | number)[];
}>;
export type AddMembersToolArgsType = z.infer<typeof AddMembersToolArgs>;
/**
 * Zod schema for remove members from group tool arguments.
 */
export declare const RemoveMembersToolArgs: z.ZodObject<{
    teamId: z.ZodString;
    groupId: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
    userIds: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">;
}, "strict", z.ZodTypeAny, {
    teamId: string;
    groupId: string | number;
    userIds: (string | number)[];
}, {
    teamId: string;
    groupId: string | number;
    userIds: (string | number)[];
}>;
export type RemoveMembersToolArgsType = z.infer<typeof RemoveMembersToolArgs>;
/**
 * Zod schema for add projects to group tool arguments.
 */
export declare const AddProjectsToolArgs: z.ZodObject<{
    teamId: z.ZodString;
    groupId: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
    projectIds: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">;
}, "strict", z.ZodTypeAny, {
    teamId: string;
    groupId: string | number;
    projectIds: (string | number)[];
}, {
    teamId: string;
    groupId: string | number;
    projectIds: (string | number)[];
}>;
export type AddProjectsToolArgsType = z.infer<typeof AddProjectsToolArgs>;
/**
 * Zod schema for remove projects from group tool arguments.
 */
export declare const RemoveProjectsToolArgs: z.ZodObject<{
    teamId: z.ZodString;
    groupId: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
    projectIds: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">;
}, "strict", z.ZodTypeAny, {
    teamId: string;
    groupId: string | number;
    projectIds: (string | number)[];
}, {
    teamId: string;
    groupId: string | number;
    projectIds: (string | number)[];
}>;
export type RemoveProjectsToolArgsType = z.infer<typeof RemoveProjectsToolArgs>;
