import { z } from 'zod';
/**
 * Types for Atlassian Bitbucket Workspaces API
 */
/**
 * Workspace type (basic object)
 */
export declare const WorkspaceTypeSchema: z.ZodLiteral<"workspace">;
export type WorkspaceType = z.infer<typeof WorkspaceTypeSchema>;
/**
 * Workspace user object
 */
export declare const WorkspaceUserSchema: z.ZodObject<{
    type: z.ZodLiteral<"user">;
    uuid: z.ZodString;
    nickname: z.ZodString;
    display_name: z.ZodString;
}, "strip", z.ZodTypeAny, {
    type: "user";
    uuid: string;
    nickname: string;
    display_name: string;
}, {
    type: "user";
    uuid: string;
    nickname: string;
    display_name: string;
}>;
/**
 * Workspace permission type
 */
export declare const WorkspacePermissionSchema: z.ZodEnum<["owner", "collaborator", "member"]>;
export declare const WorkspaceLinksSchema: z.ZodObject<{
    avatar: z.ZodOptional<z.ZodObject<{
        href: z.ZodString;
        name: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        href: string;
        name?: string | undefined;
    }, {
        href: string;
        name?: string | undefined;
    }>>;
    html: z.ZodOptional<z.ZodObject<{
        href: z.ZodString;
        name: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        href: string;
        name?: string | undefined;
    }, {
        href: string;
        name?: string | undefined;
    }>>;
    members: z.ZodOptional<z.ZodObject<{
        href: z.ZodString;
        name: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        href: string;
        name?: string | undefined;
    }, {
        href: string;
        name?: string | undefined;
    }>>;
    owners: z.ZodOptional<z.ZodObject<{
        href: z.ZodString;
        name: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        href: string;
        name?: string | undefined;
    }, {
        href: string;
        name?: string | undefined;
    }>>;
    projects: z.ZodOptional<z.ZodObject<{
        href: z.ZodString;
        name: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        href: string;
        name?: string | undefined;
    }, {
        href: string;
        name?: string | undefined;
    }>>;
    repositories: z.ZodOptional<z.ZodObject<{
        href: z.ZodString;
        name: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        href: string;
        name?: string | undefined;
    }, {
        href: string;
        name?: string | undefined;
    }>>;
    snippets: z.ZodOptional<z.ZodObject<{
        href: z.ZodString;
        name: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        href: string;
        name?: string | undefined;
    }, {
        href: string;
        name?: string | undefined;
    }>>;
    self: z.ZodOptional<z.ZodObject<{
        href: z.ZodString;
        name: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        href: string;
        name?: string | undefined;
    }, {
        href: string;
        name?: string | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    avatar?: {
        href: string;
        name?: string | undefined;
    } | undefined;
    html?: {
        href: string;
        name?: string | undefined;
    } | undefined;
    members?: {
        href: string;
        name?: string | undefined;
    } | undefined;
    owners?: {
        href: string;
        name?: string | undefined;
    } | undefined;
    projects?: {
        href: string;
        name?: string | undefined;
    } | undefined;
    repositories?: {
        href: string;
        name?: string | undefined;
    } | undefined;
    snippets?: {
        href: string;
        name?: string | undefined;
    } | undefined;
    self?: {
        href: string;
        name?: string | undefined;
    } | undefined;
}, {
    avatar?: {
        href: string;
        name?: string | undefined;
    } | undefined;
    html?: {
        href: string;
        name?: string | undefined;
    } | undefined;
    members?: {
        href: string;
        name?: string | undefined;
    } | undefined;
    owners?: {
        href: string;
        name?: string | undefined;
    } | undefined;
    projects?: {
        href: string;
        name?: string | undefined;
    } | undefined;
    repositories?: {
        href: string;
        name?: string | undefined;
    } | undefined;
    snippets?: {
        href: string;
        name?: string | undefined;
    } | undefined;
    self?: {
        href: string;
        name?: string | undefined;
    } | undefined;
}>;
export type WorkspaceLinks = z.infer<typeof WorkspaceLinksSchema>;
/**
 * Workspace forking mode
 */
export declare const WorkspaceForkingModeSchema: z.ZodEnum<["allow_forks", "no_public_forks", "no_forks"]>;
export type WorkspaceForkingMode = z.infer<typeof WorkspaceForkingModeSchema>;
/**
 * Workspace object returned from the API
 */
export declare const WorkspaceSchema: z.ZodType<{
    type: WorkspaceType;
    uuid: string;
    name: string;
    slug: string;
    is_private?: boolean;
    is_privacy_enforced?: boolean;
    forking_mode?: WorkspaceForkingMode;
    created_on?: string;
    updated_on?: string;
    links: WorkspaceLinks;
}>;
/**
 * Workspace membership object
 */
export declare const WorkspaceMembershipSchema: z.ZodObject<{
    type: z.ZodLiteral<"workspace_membership">;
    permission: z.ZodEnum<["owner", "collaborator", "member"]>;
    last_accessed: z.ZodOptional<z.ZodString>;
    added_on: z.ZodOptional<z.ZodString>;
    user: z.ZodObject<{
        type: z.ZodLiteral<"user">;
        uuid: z.ZodString;
        nickname: z.ZodString;
        display_name: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "user";
        uuid: string;
        nickname: string;
        display_name: string;
    }, {
        type: "user";
        uuid: string;
        nickname: string;
        display_name: string;
    }>;
    workspace: z.ZodType<{
        type: WorkspaceType;
        uuid: string;
        name: string;
        slug: string;
        is_private?: boolean;
        is_privacy_enforced?: boolean;
        forking_mode?: WorkspaceForkingMode;
        created_on?: string;
        updated_on?: string;
        links: WorkspaceLinks;
    }, z.ZodTypeDef, {
        type: WorkspaceType;
        uuid: string;
        name: string;
        slug: string;
        is_private?: boolean;
        is_privacy_enforced?: boolean;
        forking_mode?: WorkspaceForkingMode;
        created_on?: string;
        updated_on?: string;
        links: WorkspaceLinks;
    }>;
}, "strip", z.ZodTypeAny, {
    workspace: {
        type: WorkspaceType;
        uuid: string;
        name: string;
        slug: string;
        is_private?: boolean;
        is_privacy_enforced?: boolean;
        forking_mode?: WorkspaceForkingMode;
        created_on?: string;
        updated_on?: string;
        links: WorkspaceLinks;
    };
    type: "workspace_membership";
    user: {
        type: "user";
        uuid: string;
        nickname: string;
        display_name: string;
    };
    permission: "owner" | "collaborator" | "member";
    last_accessed?: string | undefined;
    added_on?: string | undefined;
}, {
    workspace: {
        type: WorkspaceType;
        uuid: string;
        name: string;
        slug: string;
        is_private?: boolean;
        is_privacy_enforced?: boolean;
        forking_mode?: WorkspaceForkingMode;
        created_on?: string;
        updated_on?: string;
        links: WorkspaceLinks;
    };
    type: "workspace_membership";
    user: {
        type: "user";
        uuid: string;
        nickname: string;
        display_name: string;
    };
    permission: "owner" | "collaborator" | "member";
    last_accessed?: string | undefined;
    added_on?: string | undefined;
}>;
export type WorkspaceMembership = z.infer<typeof WorkspaceMembershipSchema>;
/**
 * Extended workspace object with optional fields
 * @remarks Currently identical to Workspace, but allows for future extension
 */
export declare const WorkspaceDetailedSchema: z.ZodType<{
    type: WorkspaceType;
    uuid: string;
    name: string;
    slug: string;
    is_private?: boolean;
    is_privacy_enforced?: boolean;
    forking_mode?: WorkspaceForkingMode;
    created_on?: string;
    updated_on?: string;
    links: WorkspaceLinks;
}, z.ZodTypeDef, {
    type: WorkspaceType;
    uuid: string;
    name: string;
    slug: string;
    is_private?: boolean;
    is_privacy_enforced?: boolean;
    forking_mode?: WorkspaceForkingMode;
    created_on?: string;
    updated_on?: string;
    links: WorkspaceLinks;
}>;
export type WorkspaceDetailed = z.infer<typeof WorkspaceDetailedSchema>;
/**
 * Parameters for listing workspaces
 */
export declare const ListWorkspacesParamsSchema: z.ZodObject<{
    q: z.ZodOptional<z.ZodString>;
    page: z.ZodOptional<z.ZodNumber>;
    pagelen: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    page?: number | undefined;
    q?: string | undefined;
    pagelen?: number | undefined;
}, {
    page?: number | undefined;
    q?: string | undefined;
    pagelen?: number | undefined;
}>;
export type ListWorkspacesParams = z.infer<typeof ListWorkspacesParamsSchema>;
/**
 * API response for user permissions on workspaces
 */
export declare const WorkspacePermissionsResponseSchema: z.ZodObject<{
    pagelen: z.ZodNumber;
    page: z.ZodNumber;
    size: z.ZodNumber;
    next: z.ZodOptional<z.ZodString>;
    previous: z.ZodOptional<z.ZodString>;
    values: z.ZodArray<z.ZodObject<{
        type: z.ZodLiteral<"workspace_membership">;
        permission: z.ZodEnum<["owner", "collaborator", "member"]>;
        last_accessed: z.ZodOptional<z.ZodString>;
        added_on: z.ZodOptional<z.ZodString>;
        user: z.ZodObject<{
            type: z.ZodLiteral<"user">;
            uuid: z.ZodString;
            nickname: z.ZodString;
            display_name: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            type: "user";
            uuid: string;
            nickname: string;
            display_name: string;
        }, {
            type: "user";
            uuid: string;
            nickname: string;
            display_name: string;
        }>;
        workspace: z.ZodType<{
            type: WorkspaceType;
            uuid: string;
            name: string;
            slug: string;
            is_private?: boolean;
            is_privacy_enforced?: boolean;
            forking_mode?: WorkspaceForkingMode;
            created_on?: string;
            updated_on?: string;
            links: WorkspaceLinks;
        }, z.ZodTypeDef, {
            type: WorkspaceType;
            uuid: string;
            name: string;
            slug: string;
            is_private?: boolean;
            is_privacy_enforced?: boolean;
            forking_mode?: WorkspaceForkingMode;
            created_on?: string;
            updated_on?: string;
            links: WorkspaceLinks;
        }>;
    }, "strip", z.ZodTypeAny, {
        workspace: {
            type: WorkspaceType;
            uuid: string;
            name: string;
            slug: string;
            is_private?: boolean;
            is_privacy_enforced?: boolean;
            forking_mode?: WorkspaceForkingMode;
            created_on?: string;
            updated_on?: string;
            links: WorkspaceLinks;
        };
        type: "workspace_membership";
        user: {
            type: "user";
            uuid: string;
            nickname: string;
            display_name: string;
        };
        permission: "owner" | "collaborator" | "member";
        last_accessed?: string | undefined;
        added_on?: string | undefined;
    }, {
        workspace: {
            type: WorkspaceType;
            uuid: string;
            name: string;
            slug: string;
            is_private?: boolean;
            is_privacy_enforced?: boolean;
            forking_mode?: WorkspaceForkingMode;
            created_on?: string;
            updated_on?: string;
            links: WorkspaceLinks;
        };
        type: "workspace_membership";
        user: {
            type: "user";
            uuid: string;
            nickname: string;
            display_name: string;
        };
        permission: "owner" | "collaborator" | "member";
        last_accessed?: string | undefined;
        added_on?: string | undefined;
    }>, "many">;
}, "strip", z.ZodTypeAny, {
    page: number;
    values: {
        workspace: {
            type: WorkspaceType;
            uuid: string;
            name: string;
            slug: string;
            is_private?: boolean;
            is_privacy_enforced?: boolean;
            forking_mode?: WorkspaceForkingMode;
            created_on?: string;
            updated_on?: string;
            links: WorkspaceLinks;
        };
        type: "workspace_membership";
        user: {
            type: "user";
            uuid: string;
            nickname: string;
            display_name: string;
        };
        permission: "owner" | "collaborator" | "member";
        last_accessed?: string | undefined;
        added_on?: string | undefined;
    }[];
    pagelen: number;
    size: number;
    next?: string | undefined;
    previous?: string | undefined;
}, {
    page: number;
    values: {
        workspace: {
            type: WorkspaceType;
            uuid: string;
            name: string;
            slug: string;
            is_private?: boolean;
            is_privacy_enforced?: boolean;
            forking_mode?: WorkspaceForkingMode;
            created_on?: string;
            updated_on?: string;
            links: WorkspaceLinks;
        };
        type: "workspace_membership";
        user: {
            type: "user";
            uuid: string;
            nickname: string;
            display_name: string;
        };
        permission: "owner" | "collaborator" | "member";
        last_accessed?: string | undefined;
        added_on?: string | undefined;
    }[];
    pagelen: number;
    size: number;
    next?: string | undefined;
    previous?: string | undefined;
}>;
export type WorkspacePermissionsResponse = z.infer<typeof WorkspacePermissionsResponseSchema>;
