import type { PortableTool } from "../portable-tool.js";
export declare const FILE_UPLOAD_TOOL_NAME: "file_upload";
export interface FileUploadToolParams {
    file_path: string;
    purpose?: string;
}
export declare const FILE_UPLOAD_TOOL_SCHEMA: {
    readonly type: "object";
    readonly properties: {
        readonly file_path: {
            readonly type: "string";
            readonly description: string;
        };
        readonly purpose: {
            readonly type: "string";
            readonly description: string;
        };
    };
    readonly required: readonly ["file_path"];
};
export interface FileUploadResult {
    fileId: string;
    url?: string;
    filename: string;
    bytes: number;
    provider: string;
}
export interface FileUploadToolDeps {
    uploadFile(params: {
        filePath: string;
        purpose?: string;
    }): Promise<FileUploadResult>;
}
export declare function createFileUploadTool(deps: FileUploadToolDeps): PortableTool<FileUploadToolParams>;
export declare const FILE_QUERY_TOOL_NAME: "file_query";
export interface FileQueryToolParams {
    file_id?: string;
    limit?: number;
}
export declare const FILE_QUERY_TOOL_SCHEMA: {
    readonly type: "object";
    readonly properties: {
        readonly file_id: {
            readonly type: "string";
            readonly description: "Query a specific file by ID. If omitted, lists recent uploaded files.";
        };
        readonly limit: {
            readonly type: "number";
            readonly description: "Max number of files to list when file_id is omitted. Default: 10, max: 100.";
        };
    };
    readonly required: readonly [];
};
export interface FileInfo {
    id: string;
    filename: string;
    bytes: number;
    status: string;
    createdAt?: string;
    url?: string;
}
export interface FileQueryToolDeps {
    queryFile(params: {
        fileId: string;
    }): Promise<FileInfo>;
    listFiles(params: {
        limit?: number;
    }): Promise<FileInfo[]>;
}
export declare function createFileQueryTool(deps: FileQueryToolDeps): PortableTool<FileQueryToolParams>;
export declare const FILE_DELETE_TOOL_NAME: "file_delete";
export interface FileDeleteToolParams {
    file_id: string;
}
export declare const FILE_DELETE_TOOL_SCHEMA: {
    readonly type: "object";
    readonly properties: {
        readonly file_id: {
            readonly type: "string";
            readonly description: "ID of the uploaded file to delete.";
        };
    };
    readonly required: readonly ["file_id"];
};
export interface FileDeleteToolDeps {
    deleteFile(params: {
        fileId: string;
    }): Promise<void>;
}
export declare function createFileDeleteTool(deps: FileDeleteToolDeps): PortableTool<FileDeleteToolParams>;
