import * as Schema from "effect/Schema";
import { BadRequest, Forbidden, NotFound } from "../../errors.ts";
export declare const TasksStagedArtifactsPrepareUploadCreateInput: Schema.Struct<{
    readonly id: Schema.String;
    readonly project_id: Schema.String;
    readonly artifacts: Schema.optional<Schema.$Array<Schema.Struct<{
        readonly name: Schema.optional<Schema.String>;
        readonly type: Schema.optional<Schema.Literals<readonly ["plan", "context", "reference", "output", "artifact", "tree_snapshot", "user_attachment"]>>;
        readonly source: Schema.optional<Schema.String>;
        readonly size: Schema.optional<Schema.Number>;
        readonly content_type: Schema.optional<Schema.String>;
    }>>>;
}>;
export type TasksStagedArtifactsPrepareUploadCreateInput = typeof TasksStagedArtifactsPrepareUploadCreateInput.Type;
export declare const TasksStagedArtifactsPrepareUploadCreateOutput: Schema.Struct<{
    readonly artifacts: Schema.optional<Schema.$Array<Schema.Struct<{
        readonly id: Schema.optional<Schema.String>;
        readonly name: Schema.optional<Schema.String>;
        readonly type: Schema.optional<Schema.String>;
        readonly source: Schema.optional<Schema.String>;
        readonly size: Schema.optional<Schema.Number>;
        readonly content_type: Schema.optional<Schema.String>;
        readonly storage_path: Schema.optional<Schema.String>;
        readonly expires_in: Schema.optional<Schema.Number>;
        readonly presigned_post: Schema.optional<Schema.Struct<{
            readonly url: Schema.optional<Schema.String>;
            readonly fields: Schema.optional<Schema.$Record<Schema.String, Schema.String>>;
        }>>;
    }>>>;
}>;
export type TasksStagedArtifactsPrepareUploadCreateOutput = typeof TasksStagedArtifactsPrepareUploadCreateOutput.Type;
/**
 * Prepare staged direct uploads for task attachments
 *
 * Reserve S3 object keys for task attachments before creating a new run and return presigned POST forms for direct uploads.
 *
 * @param id - A UUID string identifying this task.
 * @param project_id - Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
 */
export declare const tasksStagedArtifactsPrepareUploadCreate: import("@distilled.cloud/core/client").OperationMethod<{
    readonly id: string;
    readonly project_id: string;
    readonly artifacts?: readonly {
        readonly name?: string | undefined;
        readonly type?: "artifact" | "context" | "output" | "plan" | "reference" | "tree_snapshot" | "user_attachment" | undefined;
        readonly source?: string | undefined;
        readonly size?: number | undefined;
        readonly content_type?: string | undefined;
    }[] | undefined;
}, {
    readonly artifacts?: readonly {
        readonly id?: string | undefined;
        readonly name?: string | undefined;
        readonly type?: string | undefined;
        readonly source?: string | undefined;
        readonly size?: number | undefined;
        readonly content_type?: string | undefined;
        readonly storage_path?: string | undefined;
        readonly expires_in?: number | undefined;
        readonly presigned_post?: {
            readonly url?: string | undefined;
            readonly fields?: {
                readonly [x: string]: string;
            } | undefined;
        } | undefined;
    }[] | undefined;
}, BadRequest | Forbidden | NotFound, import("~/credentials.ts").Credentials>;
//# sourceMappingURL=tasksStagedArtifactsPrepareUploadCreate.d.ts.map