export type BaseAttachmentProps = {
    id: string;
    name?: string;
    mimeType?: string;
    size?: number;
    tags?: Record<string, string>;
    metadata?: Record<string, string>;
};
export type FileAttachment = BaseAttachmentProps & {
    type: "file";
    path: string;
};
export type FileAttachmentWithKey = FileAttachment & {
    key: string;
};
export type FileDataAttachment = BaseAttachmentProps & {
    type: "fileData";
    data: Buffer;
};
export type FileDataAttachmentWithKey = FileDataAttachment & {
    key: string;
};
export type UrlAttachment = BaseAttachmentProps & {
    type: "url";
    url: string;
};
export type UrlAttachmentWithKey = UrlAttachment & {
    key: string;
};
export type Attachment = FileAttachment | FileDataAttachment | UrlAttachment;
export type AttachmentWithKey = FileAttachmentWithKey | FileDataAttachmentWithKey | UrlAttachmentWithKey;
export declare function populateAttachmentFields<T extends Attachment>(attachment: T): T;
