import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export declare const FilePartKind: {
    readonly File: "file";
};
export type FilePartKind = ClosedEnum<typeof FilePartKind>;
/**
 * File in URI format. Check in the model's documentation for the supported mime types for the URI format
 */
export type FileInURIFormat = {
    /**
     * URL for the File content
     */
    uri: string;
    /**
     * Optional mimeType for the file
     */
    mimeType?: string | undefined;
    /**
     * Optional name for the file
     */
    name?: string | undefined;
};
/**
 * Binary in base64 format. Check in the model's documentation for the supported mime types for the binary format.
 */
export type BinaryFormat = {
    /**
     * base64 encoded content of the file
     */
    bytes: string;
    /**
     * Optional mimeType for the file
     */
    mimeType?: string | undefined;
    /**
     * Optional name for the file
     */
    name?: string | undefined;
};
export type FileT = BinaryFormat | FileInURIFormat;
/**
 * A file content part that can contain either base64-encoded bytes or a URI reference. Used for images, documents, and other binary content in agent communications.
 */
export type FilePart = {
    kind: FilePartKind;
    file: BinaryFormat | FileInURIFormat;
    metadata?: {
        [k: string]: any;
    } | undefined;
};
/** @internal */
export declare const FilePartKind$inboundSchema: z.ZodNativeEnum<typeof FilePartKind>;
/** @internal */
export declare const FilePartKind$outboundSchema: z.ZodNativeEnum<typeof FilePartKind>;
/** @internal */
export declare const FileInURIFormat$inboundSchema: z.ZodType<FileInURIFormat, z.ZodTypeDef, unknown>;
/** @internal */
export type FileInURIFormat$Outbound = {
    uri: string;
    mimeType?: string | undefined;
    name?: string | undefined;
};
/** @internal */
export declare const FileInURIFormat$outboundSchema: z.ZodType<FileInURIFormat$Outbound, z.ZodTypeDef, FileInURIFormat>;
export declare function fileInURIFormatToJSON(fileInURIFormat: FileInURIFormat): string;
export declare function fileInURIFormatFromJSON(jsonString: string): SafeParseResult<FileInURIFormat, SDKValidationError>;
/** @internal */
export declare const BinaryFormat$inboundSchema: z.ZodType<BinaryFormat, z.ZodTypeDef, unknown>;
/** @internal */
export type BinaryFormat$Outbound = {
    bytes: string;
    mimeType?: string | undefined;
    name?: string | undefined;
};
/** @internal */
export declare const BinaryFormat$outboundSchema: z.ZodType<BinaryFormat$Outbound, z.ZodTypeDef, BinaryFormat>;
export declare function binaryFormatToJSON(binaryFormat: BinaryFormat): string;
export declare function binaryFormatFromJSON(jsonString: string): SafeParseResult<BinaryFormat, SDKValidationError>;
/** @internal */
export declare const FileT$inboundSchema: z.ZodType<FileT, z.ZodTypeDef, unknown>;
/** @internal */
export type FileT$Outbound = BinaryFormat$Outbound | FileInURIFormat$Outbound;
/** @internal */
export declare const FileT$outboundSchema: z.ZodType<FileT$Outbound, z.ZodTypeDef, FileT>;
export declare function fileToJSON(fileT: FileT): string;
export declare function fileFromJSON(jsonString: string): SafeParseResult<FileT, SDKValidationError>;
/** @internal */
export declare const FilePart$inboundSchema: z.ZodType<FilePart, z.ZodTypeDef, unknown>;
/** @internal */
export type FilePart$Outbound = {
    kind: string;
    file: BinaryFormat$Outbound | FileInURIFormat$Outbound;
    metadata?: {
        [k: string]: any;
    } | undefined;
};
/** @internal */
export declare const FilePart$outboundSchema: z.ZodType<FilePart$Outbound, z.ZodTypeDef, FilePart>;
export declare function filePartToJSON(filePart: FilePart): string;
export declare function filePartFromJSON(jsonString: string): SafeParseResult<FilePart, SDKValidationError>;
//# sourceMappingURL=filepart.d.ts.map