import type { Files } from "../index.js"; import type { ApprovalConfig } from "../internal/ai-tools/approval.js"; import type { FileReadToolName, FileToolName, FileWriteToolName } from "../internal/ai-tools/schemas.js"; import type { AgentsToolOverrides } from "./types.js"; export declare const agentsListFiles: (files: Files) => import("@openai/agents-core").FunctionTool; limit: import("zod").ZodOptional; prefix: import("zod").ZodOptional; }, import("zod/v4/core").$strip>, string>; export declare const agentsGetFileMetadata: (files: Files) => import("@openai/agents-core").FunctionTool, string>; export declare const agentsDownloadFile: (files: Files) => import("@openai/agents-core").FunctionTool; key: import("zod").ZodString; maxBytes: import("zod").ZodOptional; }, import("zod/v4/core").$strip>, string>; export declare const agentsGetFileUrl: (files: Files) => import("@openai/agents-core").FunctionTool; key: import("zod").ZodString; responseContentDisposition: import("zod").ZodOptional; }, import("zod/v4/core").$strip>, string>; export declare const agentsUploadFile: (files: Files, { needsApproval }?: { needsApproval?: boolean; }) => import("@openai/agents-core").FunctionTool; content: import("zod").ZodString; contentType: import("zod").ZodOptional; encoding: import("zod").ZodOptional>; key: import("zod").ZodString; metadata: import("zod").ZodOptional>; }, import("zod/v4/core").$strip>, string>; export declare const agentsDeleteFile: (files: Files, { needsApproval }?: { needsApproval?: boolean; }) => import("@openai/agents-core").FunctionTool, string>; export declare const agentsCopyFile: (files: Files, { needsApproval }?: { needsApproval?: boolean; }) => import("@openai/agents-core").FunctionTool, string>; export declare const agentsSignUploadUrl: (files: Files, { needsApproval }?: { needsApproval?: boolean; }) => import("@openai/agents-core").FunctionTool; expiresIn: import("zod").ZodNumber; key: import("zod").ZodString; maxSize: import("zod").ZodOptional; minSize: import("zod").ZodOptional; }, import("zod/v4/core").$strip>, string>; export interface AgentsFileTools { listFiles: ReturnType; getFileMetadata: ReturnType; downloadFile: ReturnType; getFileUrl: ReturnType; uploadFile: ReturnType; deleteFile: ReturnType; copyFile: ReturnType; signUploadUrl: ReturnType; } export type ReadOnlyAgentsFileTools = Pick; export interface AgentsFileToolsOptions { /** * The configured `Files` instance the tools will operate against. */ files: Files; /** * When `true`, write tools (`uploadFile`, `deleteFile`, `copyFile`, * `signUploadUrl`) are omitted entirely. The model cannot mutate the * bucket regardless of approval configuration. */ readOnly?: boolean; /** * Approval gating for write tools. Defaults to `true` (every write * requires approval). Pass `false` to disable, or an object keyed * by write-tool name for fine-grained control. */ requireApproval?: ApprovalConfig; /** * Per-tool overrides for `description` and `needsApproval` without * touching `execute` or `parameters`. */ overrides?: Partial>; } /** * Create a set of files-sdk tools shaped for the OpenAI Agents SDK * (`@openai/agents`). * * Returns a record keyed by tool name — spread `Object.values()` into * `new Agent({ tools })`. Write tools require approval by default; the * Agents SDK surfaces an `interruption` that the program resolves by * approving or rejecting the call. * * @example * ```ts * import { Agent, run } from "@openai/agents"; * import { Files } from "files-sdk"; * import { s3 } from "files-sdk/s3"; * import { createAgentsFileTools } from "files-sdk/openai"; * * const files = new Files({ adapter: s3({ bucket: "uploads" }) }); * const tools = createAgentsFileTools({ files }); * * const agent = new Agent({ * instructions: "Help the user manage their files.", * name: "Files agent", * tools: Object.values(tools), * }); * * const result = await run(agent, "List my files."); * ``` */ export declare function createAgentsFileTools(opts: AgentsFileToolsOptions & { readOnly: true; }): ReadOnlyAgentsFileTools; export declare function createAgentsFileTools(opts: AgentsFileToolsOptions & { readOnly?: false | undefined; }): AgentsFileTools; export declare function createAgentsFileTools(opts: AgentsFileToolsOptions): AgentsFileTools | ReadOnlyAgentsFileTools; export type { FileReadToolName, FileToolName, FileWriteToolName }; //# sourceMappingURL=agents.d.ts.map