import * as z from "zod";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
 * The type of asset. Relevant as a parameter only when using the SDKs (the resource_type is included in the endpoint URL when using the REST API). Note: use video for all video and audio assets, such as .mp3. Default: image.
 */
export declare const DeleteResourceByPublicIdsRequestResourceType3: {
    readonly Image: "image";
    readonly Video: "video";
    readonly Raw: "raw";
};
/**
 * The type of asset. Relevant as a parameter only when using the SDKs (the resource_type is included in the endpoint URL when using the REST API). Note: use video for all video and audio assets, such as .mp3. Default: image.
 */
export type DeleteResourceByPublicIdsRequestResourceType3 = ClosedEnum<typeof DeleteResourceByPublicIdsRequestResourceType3>;
export type DeleteResourceByPublicIdsRequest3 = {
    /**
     * A list of public IDs of the resources to delete.
     */
    publicIds?: Array<string> | undefined;
    /**
     * Delete all assets, including derived assets, where the public ID starts with the specified prefix (up to a maximum of 1000 original resources).
     */
    prefix?: string | undefined;
    /**
     * Delete all assets (of the relevant resource_type and type), including derived assets (up to a maximum of 1000 original resources).
     */
    all: boolean;
    /**
     * The type of asset. Relevant as a parameter only when using the SDKs (the resource_type is included in the endpoint URL when using the REST API). Note: use video for all video and audio assets, such as .mp3. Default: image.
     */
    resourceType?: DeleteResourceByPublicIdsRequestResourceType3 | undefined;
    /**
     * Whether to delete only the derived assets. Default: false.
     */
    keepOriginal?: boolean | undefined;
    /**
     * Whether to also invalidate the copies of the resource on the CDN. It usually takes between a few seconds and a few minutes for the invalidation to fully propagate through the CDN. Default: false.
     */
    invalidate?: boolean | undefined;
    /**
     * (Only when deleting by prefix or all) When a deletion request has more than 1000 resources to delete, the response includes the partial boolean parameter set to true, as well as a next_cursor value. You can then specify this returned next_cursor value as a parameter of the following deletion request.
     */
    nextCursor?: string | undefined;
    /**
     * Only the derived assets matching this hash of transformation parameters will be deleted. You can include multiple transformations separated by a pipe character (|).
     */
    transformations?: string | undefined;
};
/**
 * The type of asset. Relevant as a parameter only when using the SDKs (the resource_type is included in the endpoint URL when using the REST API). Note: use video for all video and audio assets, such as .mp3. Default: image.
 */
export declare const DeleteResourceByPublicIdsRequestResourceType2: {
    readonly Image: "image";
    readonly Video: "video";
    readonly Raw: "raw";
};
/**
 * The type of asset. Relevant as a parameter only when using the SDKs (the resource_type is included in the endpoint URL when using the REST API). Note: use video for all video and audio assets, such as .mp3. Default: image.
 */
export type DeleteResourceByPublicIdsRequestResourceType2 = ClosedEnum<typeof DeleteResourceByPublicIdsRequestResourceType2>;
export type DeleteResourceByPublicIdsRequest2 = {
    /**
     * A list of public IDs of the resources to delete.
     */
    publicIds?: Array<string> | undefined;
    /**
     * Delete all assets, including derived assets, where the public ID starts with the specified prefix (up to a maximum of 1000 original resources).
     */
    prefix: string;
    /**
     * Delete all assets (of the relevant resource_type and type), including derived assets (up to a maximum of 1000 original resources).
     */
    all?: boolean | undefined;
    /**
     * The type of asset. Relevant as a parameter only when using the SDKs (the resource_type is included in the endpoint URL when using the REST API). Note: use video for all video and audio assets, such as .mp3. Default: image.
     */
    resourceType?: DeleteResourceByPublicIdsRequestResourceType2 | undefined;
    /**
     * Whether to delete only the derived assets. Default: false.
     */
    keepOriginal?: boolean | undefined;
    /**
     * Whether to also invalidate the copies of the resource on the CDN. It usually takes between a few seconds and a few minutes for the invalidation to fully propagate through the CDN. Default: false.
     */
    invalidate?: boolean | undefined;
    /**
     * (Only when deleting by prefix or all) When a deletion request has more than 1000 resources to delete, the response includes the partial boolean parameter set to true, as well as a next_cursor value. You can then specify this returned next_cursor value as a parameter of the following deletion request.
     */
    nextCursor?: string | undefined;
    /**
     * Only the derived assets matching this hash of transformation parameters will be deleted. You can include multiple transformations separated by a pipe character (|).
     */
    transformations?: string | undefined;
};
/**
 * The type of asset. Relevant as a parameter only when using the SDKs (the resource_type is included in the endpoint URL when using the REST API). Note: use video for all video and audio assets, such as .mp3. Default: image.
 */
export declare const DeleteResourceByPublicIdsRequestResourceType1: {
    readonly Image: "image";
    readonly Video: "video";
    readonly Raw: "raw";
};
/**
 * The type of asset. Relevant as a parameter only when using the SDKs (the resource_type is included in the endpoint URL when using the REST API). Note: use video for all video and audio assets, such as .mp3. Default: image.
 */
export type DeleteResourceByPublicIdsRequestResourceType1 = ClosedEnum<typeof DeleteResourceByPublicIdsRequestResourceType1>;
export type DeleteResourceByPublicIdsRequest1 = {
    /**
     * A list of public IDs of the resources to delete.
     */
    publicIds: Array<string>;
    /**
     * Delete all assets, including derived assets, where the public ID starts with the specified prefix (up to a maximum of 1000 original resources).
     */
    prefix?: string | undefined;
    /**
     * Delete all assets (of the relevant resource_type and type), including derived assets (up to a maximum of 1000 original resources).
     */
    all?: boolean | undefined;
    /**
     * The type of asset. Relevant as a parameter only when using the SDKs (the resource_type is included in the endpoint URL when using the REST API). Note: use video for all video and audio assets, such as .mp3. Default: image.
     */
    resourceType?: DeleteResourceByPublicIdsRequestResourceType1 | undefined;
    /**
     * Whether to delete only the derived assets. Default: false.
     */
    keepOriginal?: boolean | undefined;
    /**
     * Whether to also invalidate the copies of the resource on the CDN. It usually takes between a few seconds and a few minutes for the invalidation to fully propagate through the CDN. Default: false.
     */
    invalidate?: boolean | undefined;
    /**
     * (Only when deleting by prefix or all) When a deletion request has more than 1000 resources to delete, the response includes the partial boolean parameter set to true, as well as a next_cursor value. You can then specify this returned next_cursor value as a parameter of the following deletion request.
     */
    nextCursor?: string | undefined;
    /**
     * Only the derived assets matching this hash of transformation parameters will be deleted. You can include multiple transformations separated by a pipe character (|).
     */
    transformations?: string | undefined;
};
export type DeleteResourceByPublicIdsRequestUnion = DeleteResourceByPublicIdsRequest1 | DeleteResourceByPublicIdsRequest2 | DeleteResourceByPublicIdsRequest3;
/** @internal */
export declare const DeleteResourceByPublicIdsRequestResourceType3$inboundSchema: z.ZodNativeEnum<typeof DeleteResourceByPublicIdsRequestResourceType3>;
/** @internal */
export declare const DeleteResourceByPublicIdsRequestResourceType3$outboundSchema: z.ZodNativeEnum<typeof DeleteResourceByPublicIdsRequestResourceType3>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace DeleteResourceByPublicIdsRequestResourceType3$ {
    /** @deprecated use `DeleteResourceByPublicIdsRequestResourceType3$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Image: "image";
        readonly Video: "video";
        readonly Raw: "raw";
    }>;
    /** @deprecated use `DeleteResourceByPublicIdsRequestResourceType3$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Image: "image";
        readonly Video: "video";
        readonly Raw: "raw";
    }>;
}
/** @internal */
export declare const DeleteResourceByPublicIdsRequest3$inboundSchema: z.ZodType<DeleteResourceByPublicIdsRequest3, z.ZodTypeDef, unknown>;
/** @internal */
export type DeleteResourceByPublicIdsRequest3$Outbound = {
    public_ids?: Array<string> | undefined;
    prefix?: string | undefined;
    all: boolean;
    resource_type: string;
    keep_original: boolean;
    invalidate: boolean;
    next_cursor?: string | undefined;
    transformations?: string | undefined;
};
/** @internal */
export declare const DeleteResourceByPublicIdsRequest3$outboundSchema: z.ZodType<DeleteResourceByPublicIdsRequest3$Outbound, z.ZodTypeDef, DeleteResourceByPublicIdsRequest3>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace DeleteResourceByPublicIdsRequest3$ {
    /** @deprecated use `DeleteResourceByPublicIdsRequest3$inboundSchema` instead. */
    const inboundSchema: z.ZodType<DeleteResourceByPublicIdsRequest3, z.ZodTypeDef, unknown>;
    /** @deprecated use `DeleteResourceByPublicIdsRequest3$outboundSchema` instead. */
    const outboundSchema: z.ZodType<DeleteResourceByPublicIdsRequest3$Outbound, z.ZodTypeDef, DeleteResourceByPublicIdsRequest3>;
    /** @deprecated use `DeleteResourceByPublicIdsRequest3$Outbound` instead. */
    type Outbound = DeleteResourceByPublicIdsRequest3$Outbound;
}
export declare function deleteResourceByPublicIdsRequest3ToJSON(deleteResourceByPublicIdsRequest3: DeleteResourceByPublicIdsRequest3): string;
export declare function deleteResourceByPublicIdsRequest3FromJSON(jsonString: string): SafeParseResult<DeleteResourceByPublicIdsRequest3, SDKValidationError>;
/** @internal */
export declare const DeleteResourceByPublicIdsRequestResourceType2$inboundSchema: z.ZodNativeEnum<typeof DeleteResourceByPublicIdsRequestResourceType2>;
/** @internal */
export declare const DeleteResourceByPublicIdsRequestResourceType2$outboundSchema: z.ZodNativeEnum<typeof DeleteResourceByPublicIdsRequestResourceType2>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace DeleteResourceByPublicIdsRequestResourceType2$ {
    /** @deprecated use `DeleteResourceByPublicIdsRequestResourceType2$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Image: "image";
        readonly Video: "video";
        readonly Raw: "raw";
    }>;
    /** @deprecated use `DeleteResourceByPublicIdsRequestResourceType2$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Image: "image";
        readonly Video: "video";
        readonly Raw: "raw";
    }>;
}
/** @internal */
export declare const DeleteResourceByPublicIdsRequest2$inboundSchema: z.ZodType<DeleteResourceByPublicIdsRequest2, z.ZodTypeDef, unknown>;
/** @internal */
export type DeleteResourceByPublicIdsRequest2$Outbound = {
    public_ids?: Array<string> | undefined;
    prefix: string;
    all?: boolean | undefined;
    resource_type: string;
    keep_original: boolean;
    invalidate: boolean;
    next_cursor?: string | undefined;
    transformations?: string | undefined;
};
/** @internal */
export declare const DeleteResourceByPublicIdsRequest2$outboundSchema: z.ZodType<DeleteResourceByPublicIdsRequest2$Outbound, z.ZodTypeDef, DeleteResourceByPublicIdsRequest2>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace DeleteResourceByPublicIdsRequest2$ {
    /** @deprecated use `DeleteResourceByPublicIdsRequest2$inboundSchema` instead. */
    const inboundSchema: z.ZodType<DeleteResourceByPublicIdsRequest2, z.ZodTypeDef, unknown>;
    /** @deprecated use `DeleteResourceByPublicIdsRequest2$outboundSchema` instead. */
    const outboundSchema: z.ZodType<DeleteResourceByPublicIdsRequest2$Outbound, z.ZodTypeDef, DeleteResourceByPublicIdsRequest2>;
    /** @deprecated use `DeleteResourceByPublicIdsRequest2$Outbound` instead. */
    type Outbound = DeleteResourceByPublicIdsRequest2$Outbound;
}
export declare function deleteResourceByPublicIdsRequest2ToJSON(deleteResourceByPublicIdsRequest2: DeleteResourceByPublicIdsRequest2): string;
export declare function deleteResourceByPublicIdsRequest2FromJSON(jsonString: string): SafeParseResult<DeleteResourceByPublicIdsRequest2, SDKValidationError>;
/** @internal */
export declare const DeleteResourceByPublicIdsRequestResourceType1$inboundSchema: z.ZodNativeEnum<typeof DeleteResourceByPublicIdsRequestResourceType1>;
/** @internal */
export declare const DeleteResourceByPublicIdsRequestResourceType1$outboundSchema: z.ZodNativeEnum<typeof DeleteResourceByPublicIdsRequestResourceType1>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace DeleteResourceByPublicIdsRequestResourceType1$ {
    /** @deprecated use `DeleteResourceByPublicIdsRequestResourceType1$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Image: "image";
        readonly Video: "video";
        readonly Raw: "raw";
    }>;
    /** @deprecated use `DeleteResourceByPublicIdsRequestResourceType1$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Image: "image";
        readonly Video: "video";
        readonly Raw: "raw";
    }>;
}
/** @internal */
export declare const DeleteResourceByPublicIdsRequest1$inboundSchema: z.ZodType<DeleteResourceByPublicIdsRequest1, z.ZodTypeDef, unknown>;
/** @internal */
export type DeleteResourceByPublicIdsRequest1$Outbound = {
    public_ids: Array<string>;
    prefix?: string | undefined;
    all?: boolean | undefined;
    resource_type: string;
    keep_original: boolean;
    invalidate: boolean;
    next_cursor?: string | undefined;
    transformations?: string | undefined;
};
/** @internal */
export declare const DeleteResourceByPublicIdsRequest1$outboundSchema: z.ZodType<DeleteResourceByPublicIdsRequest1$Outbound, z.ZodTypeDef, DeleteResourceByPublicIdsRequest1>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace DeleteResourceByPublicIdsRequest1$ {
    /** @deprecated use `DeleteResourceByPublicIdsRequest1$inboundSchema` instead. */
    const inboundSchema: z.ZodType<DeleteResourceByPublicIdsRequest1, z.ZodTypeDef, unknown>;
    /** @deprecated use `DeleteResourceByPublicIdsRequest1$outboundSchema` instead. */
    const outboundSchema: z.ZodType<DeleteResourceByPublicIdsRequest1$Outbound, z.ZodTypeDef, DeleteResourceByPublicIdsRequest1>;
    /** @deprecated use `DeleteResourceByPublicIdsRequest1$Outbound` instead. */
    type Outbound = DeleteResourceByPublicIdsRequest1$Outbound;
}
export declare function deleteResourceByPublicIdsRequest1ToJSON(deleteResourceByPublicIdsRequest1: DeleteResourceByPublicIdsRequest1): string;
export declare function deleteResourceByPublicIdsRequest1FromJSON(jsonString: string): SafeParseResult<DeleteResourceByPublicIdsRequest1, SDKValidationError>;
/** @internal */
export declare const DeleteResourceByPublicIdsRequestUnion$inboundSchema: z.ZodType<DeleteResourceByPublicIdsRequestUnion, z.ZodTypeDef, unknown>;
/** @internal */
export type DeleteResourceByPublicIdsRequestUnion$Outbound = DeleteResourceByPublicIdsRequest1$Outbound | DeleteResourceByPublicIdsRequest2$Outbound | DeleteResourceByPublicIdsRequest3$Outbound;
/** @internal */
export declare const DeleteResourceByPublicIdsRequestUnion$outboundSchema: z.ZodType<DeleteResourceByPublicIdsRequestUnion$Outbound, z.ZodTypeDef, DeleteResourceByPublicIdsRequestUnion>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace DeleteResourceByPublicIdsRequestUnion$ {
    /** @deprecated use `DeleteResourceByPublicIdsRequestUnion$inboundSchema` instead. */
    const inboundSchema: z.ZodType<DeleteResourceByPublicIdsRequestUnion, z.ZodTypeDef, unknown>;
    /** @deprecated use `DeleteResourceByPublicIdsRequestUnion$outboundSchema` instead. */
    const outboundSchema: z.ZodType<DeleteResourceByPublicIdsRequestUnion$Outbound, z.ZodTypeDef, DeleteResourceByPublicIdsRequestUnion>;
    /** @deprecated use `DeleteResourceByPublicIdsRequestUnion$Outbound` instead. */
    type Outbound = DeleteResourceByPublicIdsRequestUnion$Outbound;
}
export declare function deleteResourceByPublicIdsRequestUnionToJSON(deleteResourceByPublicIdsRequestUnion: DeleteResourceByPublicIdsRequestUnion): string;
export declare function deleteResourceByPublicIdsRequestUnionFromJSON(jsonString: string): SafeParseResult<DeleteResourceByPublicIdsRequestUnion, SDKValidationError>;
//# sourceMappingURL=deleteresourcebypublicidsrequestunion.d.ts.map