/**
 * Teams System Object - Zod Validation Schemas
 *
 * Teams are system objects with dedicated services, not generic entities.
 * This file contains all Zod schemas for the teams system.
 *
 * @module core/lib/teams/schema
 */
import { z } from 'zod';
export declare const teamRoleSchema: z.ZodEnum<{
    member: "member";
    owner: "owner";
    admin: "admin";
    viewer: "viewer";
}>;
export declare const invitationStatusSchema: z.ZodEnum<{
    pending: "pending";
    accepted: "accepted";
    declined: "declined";
    expired: "expired";
}>;
export declare const teamSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    slug: z.ZodString;
    description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    ownerId: z.ZodString;
    avatarUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    settings: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    createdAt: z.ZodString;
    updatedAt: z.ZodString;
}, z.core.$strip>;
export declare const teamMemberSchema: z.ZodObject<{
    id: z.ZodString;
    teamId: z.ZodString;
    userId: z.ZodString;
    role: z.ZodEnum<{
        member: "member";
        owner: "owner";
        admin: "admin";
        viewer: "viewer";
    }>;
    invitedBy: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    joinedAt: z.ZodString;
    createdAt: z.ZodString;
    updatedAt: z.ZodString;
}, z.core.$strip>;
export declare const teamInvitationSchema: z.ZodObject<{
    id: z.ZodString;
    teamId: z.ZodString;
    email: z.ZodString;
    role: z.ZodEnum<{
        member: "member";
        owner: "owner";
        admin: "admin";
        viewer: "viewer";
    }>;
    status: z.ZodEnum<{
        pending: "pending";
        accepted: "accepted";
        declined: "declined";
        expired: "expired";
    }>;
    token: z.ZodString;
    invitedBy: z.ZodString;
    expiresAt: z.ZodString;
    acceptedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    declinedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    createdAt: z.ZodString;
    updatedAt: z.ZodString;
}, z.core.$strip>;
export declare const createTeamSchema: z.ZodObject<{
    name: z.ZodString;
    slug: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const updateTeamSchema: z.ZodObject<{
    name: z.ZodOptional<z.ZodString>;
    slug: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    avatarUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, z.core.$strip>;
export declare const inviteMemberSchema: z.ZodObject<{
    email: z.ZodString;
    role: z.ZodEnum<{
        member: "member";
        admin: "admin";
        viewer: "viewer";
    }>;
}, z.core.$strip>;
export declare const updateMemberRoleSchema: z.ZodObject<{
    role: z.ZodEnum<{
        member: "member";
        admin: "admin";
        viewer: "viewer";
    }>;
}, z.core.$strip>;
export declare const paginationSchema: z.ZodObject<{
    page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
}, z.core.$strip>;
export declare const teamListQuerySchema: z.ZodObject<{
    page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    search: z.ZodOptional<z.ZodString>;
    sort: z.ZodDefault<z.ZodEnum<{
        name: "name";
        createdAt: "createdAt";
        updatedAt: "updatedAt";
    }>>;
    order: z.ZodDefault<z.ZodEnum<{
        asc: "asc";
        desc: "desc";
    }>>;
    scope: z.ZodDefault<z.ZodEnum<{
        user: "user";
        all: "all";
    }>>;
}, z.core.$strip>;
export declare const memberListQuerySchema: z.ZodObject<{
    page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    role: z.ZodOptional<z.ZodEnum<{
        member: "member";
        owner: "owner";
        admin: "admin";
        viewer: "viewer";
    }>>;
    search: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const invitationListQuerySchema: z.ZodObject<{
    page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    status: z.ZodOptional<z.ZodEnum<{
        pending: "pending";
        accepted: "accepted";
        declined: "declined";
        expired: "expired";
    }>>;
}, z.core.$strip>;
export type TeamSchema = z.infer<typeof teamSchema>;
export type TeamMemberSchema = z.infer<typeof teamMemberSchema>;
export type TeamInvitationSchema = z.infer<typeof teamInvitationSchema>;
export type CreateTeamSchema = z.infer<typeof createTeamSchema>;
export type UpdateTeamSchema = z.infer<typeof updateTeamSchema>;
export type InviteMemberSchema = z.infer<typeof inviteMemberSchema>;
export type UpdateMemberRoleSchema = z.infer<typeof updateMemberRoleSchema>;
export type TeamListQuerySchema = z.infer<typeof teamListQuerySchema>;
export type MemberListQuerySchema = z.infer<typeof memberListQuerySchema>;
export type InvitationListQuerySchema = z.infer<typeof invitationListQuerySchema>;
//# sourceMappingURL=schema.d.ts.map