import * as z from "zod";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { List, List$Outbound } from "../components/list.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
 * The level of access granted to all members of the workspace for this list. Pass `null` to keep the list private and only grant access to specific workspace members.
 */
export declare const PostV2ListsWorkspaceAccess: {
    readonly FullAccess: "full-access";
    readonly ReadAndWrite: "read-and-write";
    readonly ReadOnly: "read-only";
};
/**
 * The level of access granted to all members of the workspace for this list. Pass `null` to keep the list private and only grant access to specific workspace members.
 */
export type PostV2ListsWorkspaceAccess = ClosedEnum<typeof PostV2ListsWorkspaceAccess>;
/**
 * The level of access to the list.
 */
export declare const PostV2ListsLevel: {
    readonly FullAccess: "full-access";
    readonly ReadAndWrite: "read-and-write";
    readonly ReadOnly: "read-only";
};
/**
 * The level of access to the list.
 */
export type PostV2ListsLevel = ClosedEnum<typeof PostV2ListsLevel>;
export type PostV2ListsWorkspaceMemberAccess = {
    /**
     * A UUID to identify the workspace member to grant access to.
     */
    workspaceMemberId: string;
    /**
     * The level of access to the list.
     */
    level: PostV2ListsLevel;
};
export type PostV2ListsData = {
    /**
     * The human-readable name of the list.
     */
    name: string;
    /**
     * A unique, human-readable slug to access the list through API calls. Should be formatted in snake case.
     */
    apiSlug: string;
    /**
     * A UUID or slug to identify the allowed object type for records added to this list.
     */
    parentObject: string;
    /**
     * The level of access granted to all members of the workspace for this list. Pass `null` to keep the list private and only grant access to specific workspace members.
     */
    workspaceAccess: PostV2ListsWorkspaceAccess | null;
    /**
     * The level of access granted to specific workspace members for this list. Pass an empty array to grant access to no workspace members.
     */
    workspaceMemberAccess: Array<PostV2ListsWorkspaceMemberAccess>;
};
export type PostV2ListsRequest = {
    data: PostV2ListsData;
};
/**
 * Success
 */
export type PostV2ListsResponse = {
    data: List;
};
/** @internal */
export declare const PostV2ListsWorkspaceAccess$inboundSchema: z.ZodNativeEnum<typeof PostV2ListsWorkspaceAccess>;
/** @internal */
export declare const PostV2ListsWorkspaceAccess$outboundSchema: z.ZodNativeEnum<typeof PostV2ListsWorkspaceAccess>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PostV2ListsWorkspaceAccess$ {
    /** @deprecated use `PostV2ListsWorkspaceAccess$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly FullAccess: "full-access";
        readonly ReadAndWrite: "read-and-write";
        readonly ReadOnly: "read-only";
    }>;
    /** @deprecated use `PostV2ListsWorkspaceAccess$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly FullAccess: "full-access";
        readonly ReadAndWrite: "read-and-write";
        readonly ReadOnly: "read-only";
    }>;
}
/** @internal */
export declare const PostV2ListsLevel$inboundSchema: z.ZodNativeEnum<typeof PostV2ListsLevel>;
/** @internal */
export declare const PostV2ListsLevel$outboundSchema: z.ZodNativeEnum<typeof PostV2ListsLevel>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PostV2ListsLevel$ {
    /** @deprecated use `PostV2ListsLevel$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly FullAccess: "full-access";
        readonly ReadAndWrite: "read-and-write";
        readonly ReadOnly: "read-only";
    }>;
    /** @deprecated use `PostV2ListsLevel$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly FullAccess: "full-access";
        readonly ReadAndWrite: "read-and-write";
        readonly ReadOnly: "read-only";
    }>;
}
/** @internal */
export declare const PostV2ListsWorkspaceMemberAccess$inboundSchema: z.ZodType<PostV2ListsWorkspaceMemberAccess, z.ZodTypeDef, unknown>;
/** @internal */
export type PostV2ListsWorkspaceMemberAccess$Outbound = {
    workspace_member_id: string;
    level: string;
};
/** @internal */
export declare const PostV2ListsWorkspaceMemberAccess$outboundSchema: z.ZodType<PostV2ListsWorkspaceMemberAccess$Outbound, z.ZodTypeDef, PostV2ListsWorkspaceMemberAccess>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PostV2ListsWorkspaceMemberAccess$ {
    /** @deprecated use `PostV2ListsWorkspaceMemberAccess$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PostV2ListsWorkspaceMemberAccess, z.ZodTypeDef, unknown>;
    /** @deprecated use `PostV2ListsWorkspaceMemberAccess$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PostV2ListsWorkspaceMemberAccess$Outbound, z.ZodTypeDef, PostV2ListsWorkspaceMemberAccess>;
    /** @deprecated use `PostV2ListsWorkspaceMemberAccess$Outbound` instead. */
    type Outbound = PostV2ListsWorkspaceMemberAccess$Outbound;
}
export declare function postV2ListsWorkspaceMemberAccessToJSON(postV2ListsWorkspaceMemberAccess: PostV2ListsWorkspaceMemberAccess): string;
export declare function postV2ListsWorkspaceMemberAccessFromJSON(jsonString: string): SafeParseResult<PostV2ListsWorkspaceMemberAccess, SDKValidationError>;
/** @internal */
export declare const PostV2ListsData$inboundSchema: z.ZodType<PostV2ListsData, z.ZodTypeDef, unknown>;
/** @internal */
export type PostV2ListsData$Outbound = {
    name: string;
    api_slug: string;
    parent_object: string;
    workspace_access: string | null;
    workspace_member_access: Array<PostV2ListsWorkspaceMemberAccess$Outbound>;
};
/** @internal */
export declare const PostV2ListsData$outboundSchema: z.ZodType<PostV2ListsData$Outbound, z.ZodTypeDef, PostV2ListsData>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PostV2ListsData$ {
    /** @deprecated use `PostV2ListsData$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PostV2ListsData, z.ZodTypeDef, unknown>;
    /** @deprecated use `PostV2ListsData$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PostV2ListsData$Outbound, z.ZodTypeDef, PostV2ListsData>;
    /** @deprecated use `PostV2ListsData$Outbound` instead. */
    type Outbound = PostV2ListsData$Outbound;
}
export declare function postV2ListsDataToJSON(postV2ListsData: PostV2ListsData): string;
export declare function postV2ListsDataFromJSON(jsonString: string): SafeParseResult<PostV2ListsData, SDKValidationError>;
/** @internal */
export declare const PostV2ListsRequest$inboundSchema: z.ZodType<PostV2ListsRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type PostV2ListsRequest$Outbound = {
    data: PostV2ListsData$Outbound;
};
/** @internal */
export declare const PostV2ListsRequest$outboundSchema: z.ZodType<PostV2ListsRequest$Outbound, z.ZodTypeDef, PostV2ListsRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PostV2ListsRequest$ {
    /** @deprecated use `PostV2ListsRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PostV2ListsRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `PostV2ListsRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PostV2ListsRequest$Outbound, z.ZodTypeDef, PostV2ListsRequest>;
    /** @deprecated use `PostV2ListsRequest$Outbound` instead. */
    type Outbound = PostV2ListsRequest$Outbound;
}
export declare function postV2ListsRequestToJSON(postV2ListsRequest: PostV2ListsRequest): string;
export declare function postV2ListsRequestFromJSON(jsonString: string): SafeParseResult<PostV2ListsRequest, SDKValidationError>;
/** @internal */
export declare const PostV2ListsResponse$inboundSchema: z.ZodType<PostV2ListsResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type PostV2ListsResponse$Outbound = {
    data: List$Outbound;
};
/** @internal */
export declare const PostV2ListsResponse$outboundSchema: z.ZodType<PostV2ListsResponse$Outbound, z.ZodTypeDef, PostV2ListsResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PostV2ListsResponse$ {
    /** @deprecated use `PostV2ListsResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PostV2ListsResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `PostV2ListsResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PostV2ListsResponse$Outbound, z.ZodTypeDef, PostV2ListsResponse>;
    /** @deprecated use `PostV2ListsResponse$Outbound` instead. */
    type Outbound = PostV2ListsResponse$Outbound;
}
export declare function postV2ListsResponseToJSON(postV2ListsResponse: PostV2ListsResponse): string;
export declare function postV2ListsResponseFromJSON(jsonString: string): SafeParseResult<PostV2ListsResponse, SDKValidationError>;
//# sourceMappingURL=postv2lists.d.ts.map