import { VercelCore } from "../core.js";
import { RequestOptions } from "../lib/sdks.js";
import { ConnectionError, InvalidRequestError, RequestAbortedError, RequestTimeoutError, UnexpectedClientError } from "../models/httpclienterrors.js";
import { ResponseValidationError } from "../models/responsevalidationerror.js";
import { SDKValidationError } from "../models/sdkvalidationerror.js";
import { UploadProjectAvatarRequest } from "../models/uploadprojectavatarprojectsbuildmachinetype.js";
import { UploadProjectAvatarResponseBody } from "../models/uploadprojectavatarresponsebody.js";
import { VercelError } from "../models/vercelerror.js";
import { APIPromise } from "../types/async.js";
import { Result } from "../types/fp.js";
/**
 * Upload a project avatar
 *
 * @remarks
 * Upload an image as the avatar of the project identified by `idOrName`. The request body is the raw bytes of a JPG, PNG, or SVG image; the `Content-Type` header must declare which. SVG payloads are sanitized and optimized server-side before storage. The final SHA-1 of the stored bytes becomes the project's `avatar` value. The actual upload pipeline (validation, sanitization, S3 write, conditional `updateProject`, and event emission) lives in the shared `@api/project-avatar-upload` helper so it can be reused by background workers.
 *
 * If set, this operation will use {@link Security.bearerToken} from the global security.
 */
export declare function projectsUploadProjectAvatar(client: VercelCore, request: UploadProjectAvatarRequest, options?: RequestOptions): APIPromise<Result<UploadProjectAvatarResponseBody, VercelError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError>>;
//# sourceMappingURL=projectsUploadProjectAvatar.d.ts.map