import * as z from "zod";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
 * Included if 'context=true' parameter is used.
 */
export type InfoContext = {
    custom?: {
        [k: string]: any;
    } | undefined;
};
export type InfoModeration = {
    kind?: string | undefined;
    status?: string | undefined;
    updatedAt?: Date | undefined;
};
export type InfoAccessControl = {};
export type Info = {
    assetId?: string | undefined;
    publicId?: string | undefined;
    assetFolder?: string | undefined;
    displayName?: string | undefined;
    folder?: string | undefined;
    filename?: string | undefined;
    format?: string | undefined;
    version?: number | undefined;
    resourceType?: string | undefined;
    type?: string | undefined;
    createdAt?: Date | undefined;
    uploadedAt?: Date | undefined;
    bytes?: number | undefined;
    backupBytes?: number | undefined;
    width?: number | null | undefined;
    height?: number | null | undefined;
    aspectRatio?: number | null | undefined;
    pixels?: number | null | undefined;
    /**
     * Included if 'tags=true' parameter is used.
     */
    tags?: Array<string> | undefined;
    /**
     * Included if 'context=true' parameter is used.
     */
    context?: InfoContext | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
    /**
     * The type of moderation applied to the asset.
     */
    moderationKind?: string | undefined;
    /**
     * The current status of the moderation process for the asset.
     */
    moderationStatus?: string | undefined;
    /**
     * Included if 'moderations=true' parameter is used.
     */
    moderation?: Array<InfoModeration> | undefined;
    backup?: boolean | undefined;
    accessMode?: string | undefined;
    url?: string | undefined;
    secureUrl?: string | undefined;
    status?: string | undefined;
    accessControl?: Array<InfoAccessControl> | null | undefined;
    etag?: string | undefined;
};
/** @internal */
export declare const InfoContext$inboundSchema: z.ZodType<InfoContext, z.ZodTypeDef, unknown>;
/** @internal */
export type InfoContext$Outbound = {
    custom?: {
        [k: string]: any;
    } | undefined;
};
/** @internal */
export declare const InfoContext$outboundSchema: z.ZodType<InfoContext$Outbound, z.ZodTypeDef, InfoContext>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InfoContext$ {
    /** @deprecated use `InfoContext$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InfoContext, z.ZodTypeDef, unknown>;
    /** @deprecated use `InfoContext$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InfoContext$Outbound, z.ZodTypeDef, InfoContext>;
    /** @deprecated use `InfoContext$Outbound` instead. */
    type Outbound = InfoContext$Outbound;
}
export declare function infoContextToJSON(infoContext: InfoContext): string;
export declare function infoContextFromJSON(jsonString: string): SafeParseResult<InfoContext, SDKValidationError>;
/** @internal */
export declare const InfoModeration$inboundSchema: z.ZodType<InfoModeration, z.ZodTypeDef, unknown>;
/** @internal */
export type InfoModeration$Outbound = {
    kind?: string | undefined;
    status?: string | undefined;
    updated_at?: string | undefined;
};
/** @internal */
export declare const InfoModeration$outboundSchema: z.ZodType<InfoModeration$Outbound, z.ZodTypeDef, InfoModeration>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InfoModeration$ {
    /** @deprecated use `InfoModeration$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InfoModeration, z.ZodTypeDef, unknown>;
    /** @deprecated use `InfoModeration$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InfoModeration$Outbound, z.ZodTypeDef, InfoModeration>;
    /** @deprecated use `InfoModeration$Outbound` instead. */
    type Outbound = InfoModeration$Outbound;
}
export declare function infoModerationToJSON(infoModeration: InfoModeration): string;
export declare function infoModerationFromJSON(jsonString: string): SafeParseResult<InfoModeration, SDKValidationError>;
/** @internal */
export declare const InfoAccessControl$inboundSchema: z.ZodType<InfoAccessControl, z.ZodTypeDef, unknown>;
/** @internal */
export type InfoAccessControl$Outbound = {};
/** @internal */
export declare const InfoAccessControl$outboundSchema: z.ZodType<InfoAccessControl$Outbound, z.ZodTypeDef, InfoAccessControl>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InfoAccessControl$ {
    /** @deprecated use `InfoAccessControl$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InfoAccessControl, z.ZodTypeDef, unknown>;
    /** @deprecated use `InfoAccessControl$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InfoAccessControl$Outbound, z.ZodTypeDef, InfoAccessControl>;
    /** @deprecated use `InfoAccessControl$Outbound` instead. */
    type Outbound = InfoAccessControl$Outbound;
}
export declare function infoAccessControlToJSON(infoAccessControl: InfoAccessControl): string;
export declare function infoAccessControlFromJSON(jsonString: string): SafeParseResult<InfoAccessControl, SDKValidationError>;
/** @internal */
export declare const Info$inboundSchema: z.ZodType<Info, z.ZodTypeDef, unknown>;
/** @internal */
export type Info$Outbound = {
    asset_id?: string | undefined;
    public_id?: string | undefined;
    asset_folder?: string | undefined;
    display_name?: string | undefined;
    folder?: string | undefined;
    filename?: string | undefined;
    format?: string | undefined;
    version?: number | undefined;
    resource_type?: string | undefined;
    type?: string | undefined;
    created_at?: string | undefined;
    uploaded_at?: string | undefined;
    bytes?: number | undefined;
    backup_bytes?: number | undefined;
    width?: number | null | undefined;
    height?: number | null | undefined;
    aspect_ratio?: number | null | undefined;
    pixels?: number | null | undefined;
    tags?: Array<string> | undefined;
    context?: InfoContext$Outbound | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
    moderation_kind?: string | undefined;
    moderation_status?: string | undefined;
    moderation?: Array<InfoModeration$Outbound> | undefined;
    backup?: boolean | undefined;
    access_mode?: string | undefined;
    url?: string | undefined;
    secure_url?: string | undefined;
    status?: string | undefined;
    access_control?: Array<InfoAccessControl$Outbound> | null | undefined;
    etag?: string | undefined;
};
/** @internal */
export declare const Info$outboundSchema: z.ZodType<Info$Outbound, z.ZodTypeDef, Info>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Info$ {
    /** @deprecated use `Info$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Info, z.ZodTypeDef, unknown>;
    /** @deprecated use `Info$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Info$Outbound, z.ZodTypeDef, Info>;
    /** @deprecated use `Info$Outbound` instead. */
    type Outbound = Info$Outbound;
}
export declare function infoToJSON(info: Info): string;
export declare function infoFromJSON(jsonString: string): SafeParseResult<Info, SDKValidationError>;
//# sourceMappingURL=info.d.ts.map