import type { AttachmentRuntime } from "../runtime/AttachmentRuntime.js";
/**
 * @deprecated Use `useAui()` with `aui.attachment()` instead. See migration guide: https://assistant-ui.com/docs/migrations/v0-12
 */
export declare function useAttachmentRuntime(options?: {
    optional?: false | undefined;
}): AttachmentRuntime;
export declare function useAttachmentRuntime(options?: {
    optional?: boolean | undefined;
}): AttachmentRuntime | null;
export declare function useThreadComposerAttachmentRuntime(options?: {
    optional?: false | undefined;
}): AttachmentRuntime<"thread-composer">;
export declare function useThreadComposerAttachmentRuntime(options?: {
    optional?: boolean | undefined;
}): AttachmentRuntime<"thread-composer"> | null;
export declare function useEditComposerAttachmentRuntime(options?: {
    optional?: false | undefined;
}): AttachmentRuntime<"edit-composer">;
export declare function useEditComposerAttachmentRuntime(options?: {
    optional?: boolean | undefined;
}): AttachmentRuntime<"edit-composer"> | null;
export declare function useMessageAttachmentRuntime(options?: {
    optional?: false | undefined;
}): AttachmentRuntime<"message">;
export declare function useMessageAttachmentRuntime(options?: {
    optional?: boolean | undefined;
}): AttachmentRuntime<"message"> | null;
/**
 * @deprecated Use `useAuiState((s) => s.attachment)` instead. See migration guide: https://assistant-ui.com/docs/migrations/v0-12
 */
export declare const useAttachment: {
    (): import("@assistant-ui/core").AttachmentState & {
        source: "message" | "thread-composer" | "edit-composer";
    };
    <TSelected>(selector: (state: import("@assistant-ui/core").AttachmentState & {
        source: "message" | "thread-composer" | "edit-composer";
    }) => TSelected): TSelected;
    <TSelected>(selector: ((state: import("@assistant-ui/core").AttachmentState & {
        source: "message" | "thread-composer" | "edit-composer";
    }) => TSelected) | undefined): (import("@assistant-ui/core").AttachmentState & {
        source: "message" | "thread-composer" | "edit-composer";
    }) | TSelected;
    (options: {
        optional?: false | undefined;
    }): import("@assistant-ui/core").AttachmentState & {
        source: "message" | "thread-composer" | "edit-composer";
    };
    (options: {
        optional?: boolean | undefined;
    }): (import("@assistant-ui/core").AttachmentState & {
        source: "message" | "thread-composer" | "edit-composer";
    }) | null;
    <TSelected>(options: {
        optional?: false | undefined;
        selector: (state: import("@assistant-ui/core").AttachmentState & {
            source: "message" | "thread-composer" | "edit-composer";
        }) => TSelected;
    }): TSelected;
    <TSelected>(options: {
        optional?: false | undefined;
        selector: ((state: import("@assistant-ui/core").AttachmentState & {
            source: "message" | "thread-composer" | "edit-composer";
        }) => TSelected) | undefined;
    }): (import("@assistant-ui/core").AttachmentState & {
        source: "message" | "thread-composer" | "edit-composer";
    }) | TSelected;
    <TSelected>(options: {
        optional?: boolean | undefined;
        selector: (state: import("@assistant-ui/core").AttachmentState & {
            source: "message" | "thread-composer" | "edit-composer";
        }) => TSelected;
    }): TSelected | null;
    <TSelected>(options: {
        optional?: boolean | undefined;
        selector: ((state: import("@assistant-ui/core").AttachmentState & {
            source: "message" | "thread-composer" | "edit-composer";
        }) => TSelected) | undefined;
    }): (import("@assistant-ui/core").AttachmentState & {
        source: "message" | "thread-composer" | "edit-composer";
    }) | TSelected | null;
};
export declare const useThreadComposerAttachment: {
    (): ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "thread-composer";
    } & {
        source: "thread-composer";
    }) | ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").PendingAttachmentStatus;
        file: File;
    } & {
        readonly source: "thread-composer";
    } & {
        source: "thread-composer";
    });
    <TSelected>(selector: (state: ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "thread-composer";
    } & {
        source: "thread-composer";
    }) | ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").PendingAttachmentStatus;
        file: File;
    } & {
        readonly source: "thread-composer";
    } & {
        source: "thread-composer";
    })) => TSelected): TSelected;
    <TSelected>(selector: ((state: ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "thread-composer";
    } & {
        source: "thread-composer";
    }) | ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").PendingAttachmentStatus;
        file: File;
    } & {
        readonly source: "thread-composer";
    } & {
        source: "thread-composer";
    })) => TSelected) | undefined): ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "thread-composer";
    } & {
        source: "thread-composer";
    }) | ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").PendingAttachmentStatus;
        file: File;
    } & {
        readonly source: "thread-composer";
    } & {
        source: "thread-composer";
    }) | TSelected;
    (options: {
        optional?: false | undefined;
    }): ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "thread-composer";
    } & {
        source: "thread-composer";
    }) | ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").PendingAttachmentStatus;
        file: File;
    } & {
        readonly source: "thread-composer";
    } & {
        source: "thread-composer";
    });
    (options: {
        optional?: boolean | undefined;
    }): ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "thread-composer";
    } & {
        source: "thread-composer";
    }) | ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").PendingAttachmentStatus;
        file: File;
    } & {
        readonly source: "thread-composer";
    } & {
        source: "thread-composer";
    }) | null;
    <TSelected>(options: {
        optional?: false | undefined;
        selector: (state: ({
            id: string;
            type: "image" | "document" | "file" | (string & {});
            name: string;
            contentType?: string | undefined;
            file?: File;
            content?: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            status: import("@assistant-ui/core").CompleteAttachmentStatus;
            content: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            readonly source: "thread-composer";
        } & {
            source: "thread-composer";
        }) | ({
            id: string;
            type: "image" | "document" | "file" | (string & {});
            name: string;
            contentType?: string | undefined;
            file?: File;
            content?: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            status: import("@assistant-ui/core").PendingAttachmentStatus;
            file: File;
        } & {
            readonly source: "thread-composer";
        } & {
            source: "thread-composer";
        })) => TSelected;
    }): TSelected;
    <TSelected>(options: {
        optional?: false | undefined;
        selector: ((state: ({
            id: string;
            type: "image" | "document" | "file" | (string & {});
            name: string;
            contentType?: string | undefined;
            file?: File;
            content?: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            status: import("@assistant-ui/core").CompleteAttachmentStatus;
            content: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            readonly source: "thread-composer";
        } & {
            source: "thread-composer";
        }) | ({
            id: string;
            type: "image" | "document" | "file" | (string & {});
            name: string;
            contentType?: string | undefined;
            file?: File;
            content?: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            status: import("@assistant-ui/core").PendingAttachmentStatus;
            file: File;
        } & {
            readonly source: "thread-composer";
        } & {
            source: "thread-composer";
        })) => TSelected) | undefined;
    }): ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "thread-composer";
    } & {
        source: "thread-composer";
    }) | ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").PendingAttachmentStatus;
        file: File;
    } & {
        readonly source: "thread-composer";
    } & {
        source: "thread-composer";
    }) | TSelected;
    <TSelected>(options: {
        optional?: boolean | undefined;
        selector: (state: ({
            id: string;
            type: "image" | "document" | "file" | (string & {});
            name: string;
            contentType?: string | undefined;
            file?: File;
            content?: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            status: import("@assistant-ui/core").CompleteAttachmentStatus;
            content: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            readonly source: "thread-composer";
        } & {
            source: "thread-composer";
        }) | ({
            id: string;
            type: "image" | "document" | "file" | (string & {});
            name: string;
            contentType?: string | undefined;
            file?: File;
            content?: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            status: import("@assistant-ui/core").PendingAttachmentStatus;
            file: File;
        } & {
            readonly source: "thread-composer";
        } & {
            source: "thread-composer";
        })) => TSelected;
    }): TSelected | null;
    <TSelected>(options: {
        optional?: boolean | undefined;
        selector: ((state: ({
            id: string;
            type: "image" | "document" | "file" | (string & {});
            name: string;
            contentType?: string | undefined;
            file?: File;
            content?: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            status: import("@assistant-ui/core").CompleteAttachmentStatus;
            content: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            readonly source: "thread-composer";
        } & {
            source: "thread-composer";
        }) | ({
            id: string;
            type: "image" | "document" | "file" | (string & {});
            name: string;
            contentType?: string | undefined;
            file?: File;
            content?: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            status: import("@assistant-ui/core").PendingAttachmentStatus;
            file: File;
        } & {
            readonly source: "thread-composer";
        } & {
            source: "thread-composer";
        })) => TSelected) | undefined;
    }): ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "thread-composer";
    } & {
        source: "thread-composer";
    }) | ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").PendingAttachmentStatus;
        file: File;
    } & {
        readonly source: "thread-composer";
    } & {
        source: "thread-composer";
    }) | TSelected | null;
};
export declare const useEditComposerAttachment: {
    (): ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "edit-composer";
    } & {
        source: "edit-composer";
    }) | ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").PendingAttachmentStatus;
        file: File;
    } & {
        readonly source: "edit-composer";
    } & {
        source: "edit-composer";
    });
    <TSelected>(selector: (state: ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "edit-composer";
    } & {
        source: "edit-composer";
    }) | ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").PendingAttachmentStatus;
        file: File;
    } & {
        readonly source: "edit-composer";
    } & {
        source: "edit-composer";
    })) => TSelected): TSelected;
    <TSelected>(selector: ((state: ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "edit-composer";
    } & {
        source: "edit-composer";
    }) | ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").PendingAttachmentStatus;
        file: File;
    } & {
        readonly source: "edit-composer";
    } & {
        source: "edit-composer";
    })) => TSelected) | undefined): ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "edit-composer";
    } & {
        source: "edit-composer";
    }) | ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").PendingAttachmentStatus;
        file: File;
    } & {
        readonly source: "edit-composer";
    } & {
        source: "edit-composer";
    }) | TSelected;
    (options: {
        optional?: false | undefined;
    }): ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "edit-composer";
    } & {
        source: "edit-composer";
    }) | ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").PendingAttachmentStatus;
        file: File;
    } & {
        readonly source: "edit-composer";
    } & {
        source: "edit-composer";
    });
    (options: {
        optional?: boolean | undefined;
    }): ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "edit-composer";
    } & {
        source: "edit-composer";
    }) | ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").PendingAttachmentStatus;
        file: File;
    } & {
        readonly source: "edit-composer";
    } & {
        source: "edit-composer";
    }) | null;
    <TSelected>(options: {
        optional?: false | undefined;
        selector: (state: ({
            id: string;
            type: "image" | "document" | "file" | (string & {});
            name: string;
            contentType?: string | undefined;
            file?: File;
            content?: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            status: import("@assistant-ui/core").CompleteAttachmentStatus;
            content: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            readonly source: "edit-composer";
        } & {
            source: "edit-composer";
        }) | ({
            id: string;
            type: "image" | "document" | "file" | (string & {});
            name: string;
            contentType?: string | undefined;
            file?: File;
            content?: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            status: import("@assistant-ui/core").PendingAttachmentStatus;
            file: File;
        } & {
            readonly source: "edit-composer";
        } & {
            source: "edit-composer";
        })) => TSelected;
    }): TSelected;
    <TSelected>(options: {
        optional?: false | undefined;
        selector: ((state: ({
            id: string;
            type: "image" | "document" | "file" | (string & {});
            name: string;
            contentType?: string | undefined;
            file?: File;
            content?: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            status: import("@assistant-ui/core").CompleteAttachmentStatus;
            content: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            readonly source: "edit-composer";
        } & {
            source: "edit-composer";
        }) | ({
            id: string;
            type: "image" | "document" | "file" | (string & {});
            name: string;
            contentType?: string | undefined;
            file?: File;
            content?: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            status: import("@assistant-ui/core").PendingAttachmentStatus;
            file: File;
        } & {
            readonly source: "edit-composer";
        } & {
            source: "edit-composer";
        })) => TSelected) | undefined;
    }): ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "edit-composer";
    } & {
        source: "edit-composer";
    }) | ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").PendingAttachmentStatus;
        file: File;
    } & {
        readonly source: "edit-composer";
    } & {
        source: "edit-composer";
    }) | TSelected;
    <TSelected>(options: {
        optional?: boolean | undefined;
        selector: (state: ({
            id: string;
            type: "image" | "document" | "file" | (string & {});
            name: string;
            contentType?: string | undefined;
            file?: File;
            content?: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            status: import("@assistant-ui/core").CompleteAttachmentStatus;
            content: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            readonly source: "edit-composer";
        } & {
            source: "edit-composer";
        }) | ({
            id: string;
            type: "image" | "document" | "file" | (string & {});
            name: string;
            contentType?: string | undefined;
            file?: File;
            content?: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            status: import("@assistant-ui/core").PendingAttachmentStatus;
            file: File;
        } & {
            readonly source: "edit-composer";
        } & {
            source: "edit-composer";
        })) => TSelected;
    }): TSelected | null;
    <TSelected>(options: {
        optional?: boolean | undefined;
        selector: ((state: ({
            id: string;
            type: "image" | "document" | "file" | (string & {});
            name: string;
            contentType?: string | undefined;
            file?: File;
            content?: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            status: import("@assistant-ui/core").CompleteAttachmentStatus;
            content: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            readonly source: "edit-composer";
        } & {
            source: "edit-composer";
        }) | ({
            id: string;
            type: "image" | "document" | "file" | (string & {});
            name: string;
            contentType?: string | undefined;
            file?: File;
            content?: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            status: import("@assistant-ui/core").PendingAttachmentStatus;
            file: File;
        } & {
            readonly source: "edit-composer";
        } & {
            source: "edit-composer";
        })) => TSelected) | undefined;
    }): ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "edit-composer";
    } & {
        source: "edit-composer";
    }) | ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").PendingAttachmentStatus;
        file: File;
    } & {
        readonly source: "edit-composer";
    } & {
        source: "edit-composer";
    }) | TSelected | null;
};
export declare const useMessageAttachment: {
    (): {
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "message";
    } & {
        source: "message";
    };
    <TSelected>(selector: (state: {
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "message";
    } & {
        source: "message";
    }) => TSelected): TSelected;
    <TSelected>(selector: ((state: {
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "message";
    } & {
        source: "message";
    }) => TSelected) | undefined): ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "message";
    } & {
        source: "message";
    }) | TSelected;
    (options: {
        optional?: false | undefined;
    }): {
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "message";
    } & {
        source: "message";
    };
    (options: {
        optional?: boolean | undefined;
    }): ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "message";
    } & {
        source: "message";
    }) | null;
    <TSelected>(options: {
        optional?: false | undefined;
        selector: (state: {
            id: string;
            type: "image" | "document" | "file" | (string & {});
            name: string;
            contentType?: string | undefined;
            file?: File;
            content?: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            status: import("@assistant-ui/core").CompleteAttachmentStatus;
            content: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            readonly source: "message";
        } & {
            source: "message";
        }) => TSelected;
    }): TSelected;
    <TSelected>(options: {
        optional?: false | undefined;
        selector: ((state: {
            id: string;
            type: "image" | "document" | "file" | (string & {});
            name: string;
            contentType?: string | undefined;
            file?: File;
            content?: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            status: import("@assistant-ui/core").CompleteAttachmentStatus;
            content: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            readonly source: "message";
        } & {
            source: "message";
        }) => TSelected) | undefined;
    }): ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "message";
    } & {
        source: "message";
    }) | TSelected;
    <TSelected>(options: {
        optional?: boolean | undefined;
        selector: (state: {
            id: string;
            type: "image" | "document" | "file" | (string & {});
            name: string;
            contentType?: string | undefined;
            file?: File;
            content?: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            status: import("@assistant-ui/core").CompleteAttachmentStatus;
            content: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            readonly source: "message";
        } & {
            source: "message";
        }) => TSelected;
    }): TSelected | null;
    <TSelected>(options: {
        optional?: boolean | undefined;
        selector: ((state: {
            id: string;
            type: "image" | "document" | "file" | (string & {});
            name: string;
            contentType?: string | undefined;
            file?: File;
            content?: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            status: import("@assistant-ui/core").CompleteAttachmentStatus;
            content: import("@assistant-ui/core").ThreadUserMessagePart[];
        } & {
            readonly source: "message";
        } & {
            source: "message";
        }) => TSelected) | undefined;
    }): ({
        id: string;
        type: "image" | "document" | "file" | (string & {});
        name: string;
        contentType?: string | undefined;
        file?: File;
        content?: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        status: import("@assistant-ui/core").CompleteAttachmentStatus;
        content: import("@assistant-ui/core").ThreadUserMessagePart[];
    } & {
        readonly source: "message";
    } & {
        source: "message";
    }) | TSelected | null;
};
//# sourceMappingURL=AttachmentContext.d.ts.map