export interface FileDescriptor {
    /**
     * File ID. Generated when a file is uploaded to the Media Manager.
     * @readonly
     * @maxLength 1000
     */
    id?: string;
    /**
     * File name as it appears in the Media Manager.
     * @maxLength 200
     */
    displayName?: string;
    /**
     * Static URL of the file.
     * @readonly
     * @format WEB_URL
     */
    url?: string;
    /**
     * ID of the file's parent folder.
     * @maxLength 100
     */
    parentFolderId?: string | null;
    /**
     * File hash.
     * @readonly
     * @maxLength 100
     */
    hash?: string;
    /**
     * Size of the uploaded file in bytes.
     * @readonly
     * @format DECIMAL_VALUE
     * @decimalValue options { maxScale:0 }
     */
    sizeInBytes?: string | null;
    /**
     * Whether the file is public or private. Learn more about private files ([SDK](https://dev.wix.com/docs/rest/assets/media/media-manager/files/private-files) | [REST](https://dev.wix.com/docs/sdk/backend-modules/media/files/private-files)).
     * @readonly
     */
    private?: boolean;
    /**
     * Media file type.
     * @readonly
     */
    mediaType?: MediaType;
    /**
     * Media file content.
     * @readonly
     */
    media?: FileMedia;
    /**
     * Status of the file that was uploaded.
     * * `FAILED`: The file failed to upload, for example, during media post processing.
     * * `READY`: The file uploaded, finished all processing, and is ready for use.
     * * `PENDING`: The file is processing and the URLs are not yet available. This response is returned when importing a file.
     * @readonly
     */
    operationStatus?: OperationStatus;
    /**
     * URL where the file was uploaded from.
     * @readonly
     * @format WEB_URL
     */
    sourceUrl?: string | null;
    /**
     * URL of the file's thumbnail.
     * @readonly
     * @format WEB_URL
     */
    thumbnailUrl?: string | null;
    /**
     * Labels assigned to media files that describe and categorize them. Provided by the Wix user, or generated by [Google Vision API](https://cloud.google.com/vision/docs/drag-and-drop) for images.
     * @maxSize 100
     * @maxLength 200
     */
    labels?: string[];
    /**
     * Date and time the file was created.
     * @readonly
     */
    createdDate?: Date | null;
    /**
     * Date and time the file was updated.
     * @readonly
     */
    updatedDate?: Date | null;
    /**
     * The Wix site ID where the media file is stored.
     * @readonly
     * @maxLength 100
     */
    siteId?: string;
    /**
     * State of the file.
     * @readonly
     */
    state?: State;
    /**
     * Internal tags describing the item, can be used in specific client use cases
     * @internal
     * @maxSize 100
     * @maxLength 200
     */
    internalTags?: string[];
    /**
     * The namespace containing the file
     * @internal
     */
    namespace?: Namespace;
    /**
     * Information about the identity that added this file
     * @internal
     */
    addedBy?: IdentityInfo;
    /**
     * The raw namespace containing the file
     * @internal
     * @readonly
     * @maxLength 200
     */
    rawNamespace?: string | null;
    /**
     * The date this file was last viewed from the last day, can be used to know if this file is still in use
     * @internal
     * @readonly
     */
    lastUsedDate?: Date | null;
    /**
     * The date this file was last viewed from the last day, can be used to know if this file is still in use
     * @internal
     * @readonly
     * @maxLength 200
     */
    mimeType?: string | null;
}
export declare enum MediaType {
    UNKNOWN = "UNKNOWN",
    IMAGE = "IMAGE",
    VIDEO = "VIDEO",
    AUDIO = "AUDIO",
    DOCUMENT = "DOCUMENT",
    VECTOR = "VECTOR",
    ARCHIVE = "ARCHIVE",
    MODEL3D = "MODEL3D",
    OTHER = "OTHER",
    ICON = "ICON",
    FLASH = "FLASH",
    FONT = "FONT",
    RAW = "RAW"
}
export interface FileMedia extends FileMediaMediaOneOf {
    /** Information about the image. */
    image?: ImageMedia;
    /** Information about the video. */
    video?: VideoV2;
    /** Information about the audio. */
    audio?: AudioV2;
    /** Information about the document. */
    document?: Document;
    /** Information about the vector. */
    vector?: ImageMedia;
    /** Information about the archive. */
    archive?: Archive;
    /** Information about the 3D Model. */
    model3d?: Model3D;
    /**
     * Information about other file types
     * @internal
     */
    other?: OtherMedia;
    /**
     * Information about the icon.
     * @internal
     */
    icon?: ImageMedia;
    /**
     * Information about flash
     * @internal
     */
    flash?: OtherMedia;
    /**
     * Information about the font
     * @internal
     */
    font?: FontMedia;
    /**
     * Information about a raw file
     * @internal
     */
    raw?: OtherMedia;
}
/** @oneof */
export interface FileMediaMediaOneOf {
    /** Information about the image. */
    image?: ImageMedia;
    /** Information about the video. */
    video?: VideoV2;
    /** Information about the audio. */
    audio?: AudioV2;
    /** Information about the document. */
    document?: Document;
    /** Information about the vector. */
    vector?: ImageMedia;
    /** Information about the archive. */
    archive?: Archive;
    /** Information about the 3D Model. */
    model3d?: Model3D;
    /**
     * Information about other file types
     * @internal
     */
    other?: OtherMedia;
    /**
     * Information about the icon.
     * @internal
     */
    icon?: ImageMedia;
    /**
     * Information about flash
     * @internal
     */
    flash?: OtherMedia;
    /**
     * Information about the font
     * @internal
     */
    font?: FontMedia;
    /**
     * Information about a raw file
     * @internal
     */
    raw?: OtherMedia;
}
export interface ImageMedia {
    /** Image data. */
    image?: Image;
    /** Image colors. */
    colors?: Colors;
    /**
     * Information about faces in the image. Use to crop images without cutting out faces.
     * @maxSize 100
     */
    faces?: FaceRecognition[];
    /**
     * Information about the image preview.
     * You can use this to display a preview for private images.
     */
    previewImage?: Image;
    /**
     * Optional, An AI generated description of the image
     * @readonly
     * @maxLength 300
     */
    caption?: string | null;
    /**
     * Optional, return true or false if the image has text, or empty for unknown
     * @internal
     * @readonly
     */
    containsText?: boolean | null;
    /**
     * Optional, return true or false if the image has text, or empty for unknown
     * @internal
     * @readonly
     */
    animated?: boolean | null;
}
export interface Image {
    /** WixMedia image ID. */
    id?: string;
    /** Image URL. */
    url?: string;
    /**
     * Original image height.
     * @readonly
     */
    height?: number;
    /**
     * Original image width.
     * @readonly
     */
    width?: number;
    /** Image alt text. */
    altText?: string | null;
    /**
     * Image URL expiration date (when relevant).
     * @internal
     * @readonly
     */
    urlExpirationDate?: Date | null;
    /**
     * Image filename.
     * @readonly
     */
    filename?: string | null;
    /**
     * Image size in bytes.
     * @internal
     * @readonly
     * @format DECIMAL_VALUE
     */
    sizeInBytes?: string | null;
    /**
     * Focal point of the image.
     * @internal
     */
    focalPoint?: FocalPoint;
}
export interface FocalPoint {
    /** X-coordinate of the focal point. */
    x?: number;
    /** Y-coordinate of the focal point. */
    y?: number;
    /** crop by height */
    height?: number | null;
    /** crop by width */
    width?: number | null;
}
export interface Colors {
    /** Main color of the image. */
    prominent?: Color;
    /**
     * Color palette of the image.
     * @maxSize 100
     */
    palette?: Color[];
}
export interface Color {
    /**
     * HEX color.
     * @format COLOR_HEX
     */
    hex?: string | null;
    /** RGB color. */
    rgb?: ColorRGB;
}
export interface ColorRGB {
    /**
     * Red channel.
     * @max 255
     */
    r?: number | null;
    /**
     * Green channel.
     * @max 255
     */
    g?: number | null;
    /**
     * Blue channel.
     * @max 255
     */
    b?: number | null;
}
/**
 * Using this object you can crop images while centering on faces
 * ------------------------
 * |                      |
 * |    x,y               |
 * |    *--------         |
 * |    |  .  . |         |
 * |    |   |   | height  |
 * |    |  \ /  |         |
 * |    |       |         |
 * |    ---------         |
 * |     width            |
 * |                      |
 * |______________________|
 */
export interface FaceRecognition {
    /** The accuracy percentage of the face recognition. The likelihood that a face is detected. */
    confidence?: number;
    /** Top left x pixel coordinate of the face. */
    x?: number;
    /** Top left y pixel coordinate of the face. */
    y?: number;
    /** Face pixel height. */
    height?: number;
    /** Face pixel width. */
    width?: number;
}
export interface VideoV2 {
    /** WixMedia ID. */
    id?: string;
    /**
     * Original video URL.
     * @internal
     */
    url?: string;
    /**
     * Available resolutions for the video, starting with the optimal resolution.
     * @readonly
     * @maxSize 100
     */
    resolutions?: VideoResolution[];
    /**
     * Video filename.
     * @readonly
     */
    filename?: string | null;
    /**
     * Video posters.
     * @internal
     * @readonly
     * @maxSize 10
     */
    posters?: Image[];
    /**
     * Original video size in bytes.
     * @internal
     * @readonly
     * @format DECIMAL_VALUE
     */
    sizeInBytes?: string | null;
    /**
     * Video URL expiration date (when relevant).
     * @internal
     * @readonly
     */
    urlExpirationDate?: Date | null;
    /**
     * Original video duration in milliseconds.
     * @internal
     * @readonly
     */
    durationInMilliseconds?: number | null;
    /**
     * A short title for the video. will be used for SEO purposes.
     * @internal
     * @maxLength 300
     */
    title?: string | null;
    /**
     * A long description for the video. will be used for SEO purposes.
     * @internal
     * @maxLength 2000
     */
    description?: string | null;
    /**
     * Original video height.
     * @internal
     * @readonly
     */
    height?: number | null;
    /**
     * Original video width.
     * @internal
     * @readonly
     */
    width?: number | null;
}
export interface VideoResolution {
    /** Video URL. */
    url?: string;
    /** Video height. */
    height?: number;
    /** Video width. */
    width?: number;
    /**
     * Deprecated. Use the `posters` property in the parent entity instead.
     * @internal
     * @deprecated
     */
    poster?: Image;
    /**
     * Video format
     * Possible values: ['144p.mp4' '144p.webm' '240p.mp4' '240p.webm' '360p.mp4' '360p.webm' '480p.mp4' '480p.webm'
     * '720p.mp4' '720p.webm' '1080p.mp4' '1080p.webm', 'hls' ]
     */
    format?: string;
    /**
     * Deprecated. Use the `urlExpirationDate` property in the parent entity instead.
     * @internal
     * @deprecated
     */
    urlExpirationDate?: Date | null;
    /**
     * Deprecated. Use the `sizeInBytes` property in the parent entity instead. Size cannot be provided per resolution.
     * @internal
     * @format DECIMAL_VALUE
     * @deprecated
     */
    sizeInBytes?: string | null;
    /**
     * Video quality. For example: 480p, 720p.
     * @internal
     */
    quality?: string | null;
    /**
     * Video filename.
     * @internal
     */
    filename?: string | null;
    /**
     * Video duration in seconds.
     * @internal
     * @readonly
     * @deprecated Video duration in seconds.
     * @replacedBy duration_in_milliseconds
     * @targetRemovalDate 2024-08-01
     */
    durationInSeconds?: number | null;
    /**
     * Video duration in milliseconds.
     * @internal
     * @readonly
     */
    durationInMilliseconds?: number | null;
    /**
     * When true, this is a protected asset, and calling the URL will return a 403 error.
     * In order to access private assets, make a request to:
     * `GenerateFileDownloadUrl` with the WixMedia id and specify the asset_key in the request
     * @internal
     * @readonly
     */
    private?: boolean | null;
    /**
     * Key to identify the video resolution's relationship to the original media in WixMedia.
     * Can be used to request a download for the specific video resolution.
     * For example: 480p.mp4, 720p.mp4, 1080p.mp4, trailer-720p.mp4, clip-720p.mp4
     * @internal
     * @readonly
     */
    assetKey?: string | null;
}
export interface AudioV2 {
    /**
     * WixMedia ID.
     * @maxLength 200
     */
    id?: string;
    /**
     * Audio formats available for this file.
     * @maxSize 100
     */
    assets?: Audio[];
    /**
     * Audio bitrate.
     * @readonly
     */
    bitrate?: number | null;
    /**
     * Audio format.
     * @readonly
     * @maxLength 100
     */
    format?: string | null;
    /**
     * Audio duration in seconds.
     * @readonly
     */
    duration?: number | null;
    /**
     * Audio size in bytes.
     * @readonly
     * @format DECIMAL_VALUE
     * @decimalValue options { maxScale:0 }
     */
    sizeInBytes?: string | null;
}
export interface Audio {
    /** WixMedia ID. */
    id?: string;
    /** Audio URL. */
    url?: string;
    /**
     * Audio URL expiration date (when relevant).
     * @internal
     * @readonly
     */
    urlExpirationDate?: Date | null;
    /**
     * Audio size in bytes.
     * @internal
     * @readonly
     * @format DECIMAL_VALUE
     */
    sizeInBytes?: string | null;
    /**
     * Audio filename.
     * @readonly
     */
    filename?: string | null;
    /**
     * Audio duration in milliseconds.
     * @internal
     * @readonly
     */
    duration?: number | null;
    /**
     * When true, this is a protected asset, and calling the URL will return a 403 error.
     * In order to access private assets, make a request to:
     * `GenerateFileDownloadUrl` with the WixMedia id and specify the asset_key in the request
     * @internal
     * @readonly
     */
    private?: boolean | null;
    /**
     * Key to identify the object relationship to the original media in WixMedia.
     * Can be used to request a download for the specific asset.
     * For example: 128-30kbs.mp3, 320kbs.mp3, 128kbs.mp3
     * @internal
     * @readonly
     */
    assetKey?: string | null;
    /**
     * Audio format.
     * @internal
     * @readonly
     */
    format?: string | null;
    /**
     * Audio quality.
     * @internal
     * @readonly
     */
    quality?: string | null;
}
export interface Document {
    /** WixMedia ID. */
    id?: string;
    /** Document URL. */
    url?: string;
    /**
     * Document URL expiration date (when relevant).
     * @internal
     */
    urlExpirationDate?: Date | null;
    /**
     * Document size in bytes.
     * @internal
     * @format DECIMAL_VALUE
     */
    sizeInBytes?: string | null;
    /** Document filename. */
    filename?: string | null;
    /**
     * Document thumbnail.
     * @internal
     * @readonly
     */
    thumbnail?: Image;
}
export interface Archive {
    /** WixMedia ID. */
    id?: string;
    /** Archive URL. */
    url?: string;
    /**
     * Archive URL expiration date (when relevant).
     * @readonly
     */
    urlExpirationDate?: Date | null;
    /**
     * Archive size in bytes.
     * @format DECIMAL_VALUE
     */
    sizeInBytes?: string | null;
    /** Archive filename. */
    filename?: string | null;
}
export interface Model3D {
    /** WixMedia 3D ID. */
    id?: string;
    /** 3D URL. */
    url?: string;
    /** 3D thumbnail Image */
    thumbnail?: Image;
    /** 3D alt text. */
    altText?: string | null;
    /**
     * 3D URL expiration date (when relevant).
     * @readonly
     */
    urlExpirationDate?: Date | null;
    /**
     * 3D filename.
     * @readonly
     */
    filename?: string | null;
    /**
     * 3D size in bytes.
     * @readonly
     * @format DECIMAL_VALUE
     */
    sizeInBytes?: string | null;
}
export interface OtherMedia {
    /**
     * WixMedia ID. for use with Site Media APIs only
     * @maxLength 200
     */
    id?: string;
    /**
     * The media type of the file: 'package', 'raw'
     * @readonly
     * @maxLength 100
     */
    internalMediaType?: string | null;
    /**
     * size in bytes. Optional.
     * @readonly
     * @format DECIMAL_VALUE
     * @decimalValue options { gte:0, maxScale:0 }
     */
    sizeInBytes?: string | null;
    /**
     * The file URL.
     * @format WEB_URL
     */
    url?: string;
}
export interface FontMedia {
    /**
     * WixMedia ID. for use with Site Media APIs only
     * @maxLength 200
     */
    id?: string | null;
    /**
     * size in bytes. Optional.
     * @readonly
     * @format DECIMAL_VALUE
     * @decimalValue options { gte:0, maxScale:0 }
     */
    sizeInBytes?: string | null;
    /**
     * The format of the font asset. ttf, woff, woff2
     * @maxLength 200
     */
    format?: string | null;
    /**
     * The font family name.
     * @maxLength 100
     */
    family?: string | null;
    /**
     * The font name
     * @maxLength 100
     */
    fontName?: string | null;
    /**
     * Font formats available for this file.
     * @maxSize 5
     */
    assets?: FontAsset[];
}
export interface FontAsset {
    /**
     * Keys for downloading different assets of a file.
     * Default: `src`, key representing the original file's format and quality.
     * @maxLength 100
     */
    assetKey?: string | null;
    /**
     * The URL of the font asset.
     * @maxLength 200
     */
    url?: string | null;
    /**
     * The format of the font asset. ttf, woff, woff2
     * @maxLength 200
     */
    format?: string | null;
}
export declare enum OperationStatus {
    /** File upload or processing failed */
    FAILED = "FAILED",
    /** File is ready for consumption */
    READY = "READY",
    /** File is waiting for processing or currently being processed */
    PENDING = "PENDING"
}
export declare enum State {
    /** File is ready for consumption */
    OK = "OK",
    /** Deleted file */
    DELETED = "DELETED"
}
export declare enum Namespace {
    /** No namespaces */
    NO_NAMESPACE = "NO_NAMESPACE",
    /** Custom namespace */
    OTHERS = "OTHERS",
    /** Wix videos */
    WIX_VIDEO = "WIX_VIDEO",
    /** Wix music */
    WIX_MUSIC = "WIX_MUSIC",
    /** Albums and art store */
    ALBUMS_AND_ART_STORE = "ALBUMS_AND_ART_STORE",
    /** Wix ecom */
    WIX_ECOM = "WIX_ECOM",
    /** Photo share */
    PHOTO_SHARE_APP = "PHOTO_SHARE_APP",
    /** Sharing app */
    SHARING_APP = "SHARING_APP",
    /** Chat (engage) */
    CHAT = "CHAT",
    /** Logo builder */
    LOGO_BUILDER = "LOGO_BUILDER",
    /** Albums old namespace */
    ALBUMS_OLD = "ALBUMS_OLD",
    /** Mobile chat */
    CHAT_MOBILE = "CHAT_MOBILE",
    /** Wix Forms */
    WIX_FORMS = "WIX_FORMS",
    /** Draft - files that will be deleted if not published */
    DRAFTS = "DRAFTS",
    /** Wix legends */
    WIX_LEGENDS = "WIX_LEGENDS",
    /** Restricted Data */
    DATA_RESTRICTED = "DATA_RESTRICTED",
    /** Portfolio */
    PORTFOLIO = "PORTFOLIO"
}
export interface IdentityInfo {
    /** The type of the user that uploaded the file */
    identityType?: IdentityType;
    /**
     * User Id. empty when UNKNOWN
     * @format GUID
     */
    identityId?: string | null;
}
export declare enum IdentityType {
    UNKNOWN = "UNKNOWN",
    ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR",
    MEMBER = "MEMBER",
    WIX_USER = "WIX_USER",
    APP = "APP"
}
export interface FileReady {
    /** File entity that is ready with full information. */
    file?: FileDescriptor;
    /** External information specified in the file import or upload. */
    externalInfo?: ExternalInfo;
    /** File was restored from the trash-bin. */
    triggeredByUndelete?: boolean;
}
export interface ExternalInfo {
    /**
     * External information to specify in the File Ready or File Failed events.
     * @maxLength 1000
     */
    origin?: string;
    /**
     * External IDs to specify in the File Ready or File Failed events.
     * @maxSize 30
     * @maxLength 4000
     */
    externalIds?: string[];
}
export interface FileFailed {
    /** External information specified in the file import or upload. */
    externalInfo?: ExternalInfo;
    /** Error information. */
    error?: ApplicationError;
}
export interface ApplicationError {
    /** Error code. */
    code?: string;
    /** Description of the error. */
    description?: string;
    /** Data related to the error. */
    data?: Record<string, any> | null;
}
export interface DraftFilePublished {
    /** The file after it was published */
    file?: FileDescriptor;
    /** The namespace the file was published to */
    namespace?: Namespace;
}
export interface BulkAnnotateImagesRequest {
    /**
     * The file ids to run detection on
     * @minSize 1
     * @maxSize 10
     * @maxLength 1000
     */
    fileIds: string[];
    /**
     * A list of detections types to fill for the image
     * @minSize 1
     * @maxSize 10
     */
    annotationTypes: ImageAnnotationType[];
    /** When true the endpoint will detect listed information even if the image has this information */
    overwrite?: boolean | null;
    /** Should the response return the item following the operation */
    returnEntity?: boolean;
}
export declare enum ImageAnnotationType {
    UNKNOWN_IMAGE_ANNOTATION_TYPE = "UNKNOWN_IMAGE_ANNOTATION_TYPE",
    CONTAINS_TEXT = "CONTAINS_TEXT",
    IS_ANIMATED = "IS_ANIMATED",
    FACES = "FACES",
    LABELS = "LABELS",
    COLORS = "COLORS",
    CAPTION = "CAPTION"
}
export interface BulkAnnotateImagesResponse {
    /** Results of individual items */
    results?: BulkAnnotateImageResult[];
    /** Metadata of the operation */
    bulkActionMetadata?: BulkActionMetadata;
}
export interface BulkAnnotateImageResult {
    /** Item metadata */
    itemMetadata?: ItemMetadata;
    /**
     * The item following the operation
     * Only returned if operation was successful and if returnEntity flag was on
     */
    item?: FileDescriptor;
}
export interface ItemMetadata {
    /** Item ID. Should always be available, unless it's impossible (for example, when failing to create an item). */
    id?: string | null;
    /** Index of the item within the request array. Allows for correlation between request and response items. */
    originalIndex?: number;
    /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */
    success?: boolean;
    /** Details about the error in case of failure. */
    error?: ApplicationError;
}
export interface BulkActionMetadata {
    /** Number of items that were successfully processed. */
    totalSuccesses?: number;
    /** Number of items that couldn't be processed. */
    totalFailures?: number;
    /** Number of failures without details because detailed failure threshold was exceeded. */
    undetailedFailures?: number;
}
export interface GenerateFilesDownloadUrlRequest {
    /**
     * IDs of the files to download.
     *
     * You can also specify the files' Wix media URLs. For example, `["wix:image://v1/0abec0_b291a9349a0b4da59067f76287e386fb~mv2.jpg/leon.jpg#originWidth=3024&originHeight=4032"]`.
     * Learn more about the file ID parameter ([SDK](https://dev.wix.com/docs/sdk/backend-modules/media/file-and-folder-ids#file-id-as-a-parameter) | [REST](https://dev.wix.com/docs/rest/assets/media/media-manager/files/file-id#file-id-as-a-parameter)).
     * @minSize 1
     * @maxSize 1000
     * @maxLength 1000
     */
    fileIds: string[];
}
export interface GenerateFilesDownloadUrlResponse {
    /**
     * URL for downloading the compressed file containing the specified files in the Media Manager.
     * @format WEB_URL
     */
    downloadUrl?: string;
}
export interface GenerateFileDownloadUrlRequest {
    /**
     * File ID.
     *
     * You can also specify the file's Wix media URL. For example, `wix:image://v1/0abec0_b291a9349a0b4da59067f76287e386fb~mv2.jpg/leon.jpg#originWidth=3024&originHeight=4032`.
     * Learn more about the file ID parameter ([SDK](https://dev.wix.com/docs/sdk/backend-modules/media/file-and-folder-ids#file-id-as-a-parameter) | [REST](https://dev.wix.com/docs/rest/assets/media/media-manager/files/file-id#file-id-as-a-parameter)).
     * @maxLength 1000
     */
    fileId: string;
    /**
     * Temporary file name used to identify the file type. For example, a file named "myFile.jpeg" identifies as an "image/jpeg" file type. <br />
     *
     * **Note:** The name that appears in the Media Manager is taken from the `filename` parameter in the Generate File Upload Url call.
     * @maxLength 100
     */
    downloadFileName?: string | null;
    /**
     * The time that it takes in minutes for the download URL to expire. <br />
     * Default: `600`. <br />
     * Limit: `525600` (1 year).
     * @min 1
     */
    expirationInMinutes?: number | null;
    /**
     * The redirect URL for when the temporary download URL with a token expires. <br />
     * Default: A 403 Forbidden response page.
     * @format WEB_URL
     */
    expirationRedirectUrl?: string | null;
    /**
     * Keys for downloading different assets (format and quality) of a file.
     * Default: `src`, key representing the original file's format and quality.
     * @maxSize 100
     * @maxLength 100
     */
    assetKeys?: string[] | null;
    /**
     * Whether the link downloads the file or opens the file in the browser.
     *
     * - `ATTACHMENT`: The link downloads the file.
     * - `INLINE`: The link opens the file in the browser.
     *
     * Default: `ATTACHMENT`
     */
    contentDisposition?: ContentDisposition;
}
export declare enum ContentDisposition {
    /** Using the link in the browser will download the file */
    ATTACHMENT = "ATTACHMENT",
    /** Using the link in the browser will open the file in the browser */
    INLINE = "INLINE"
}
export interface GenerateFileDownloadUrlResponse {
    /**
     * URL for downloading a specific file in the Media Manager.
     * @maxSize 100
     */
    downloadUrls?: DownloadUrl[];
}
export interface DownloadUrl {
    /**
     * The file download URL.
     * @format WEB_URL
     */
    url?: string;
    /**
     * Key for downloading a different asset (format and quality) of a file.
     * Default: `src`, key representing the original file's format and quality.
     * @maxLength 100
     */
    assetKey?: string;
}
export interface ServiceError {
    /**
     * Error codes are groups of related errors
     * The error code can be used to provide additional details to wix support while debugging service errors
     * @maxLength 200
     */
    internalCode?: string | null;
    /** Debugging information, http status code returned from wix media internal API */
    internalHttpStatusCode?: number | null;
    /**
     * Optional Debugging information, error key will represent the error "family" returned from wix media internal API
     * @maxLength 200
     */
    internalKey?: string | null;
}
export interface GetFileDescriptorRequest {
    /**
     * File ID.
     *
     * You can also specify the file's Wix media URL. For example, `wix:image://v1/0abec0_b291a9349a0b4da59067f76287e386fb~mv2.jpg/leon.jpg#originWidth=3024&originHeight=4032`.
     * Learn more about the file ID parameter ([SDK](https://dev.wix.com/docs/sdk/backend-modules/media/file-and-folder-ids#file-id-as-a-parameter) | [REST](https://dev.wix.com/docs/rest/assets/media/media-manager/files/file-id#file-id-as-a-parameter)).
     *
     * If you are working in REST, note that you must encode the Wix media URL to specify it as a query param because it contains special characters. For example, `wix:image://v1/0abec0_b291a9349a0b4da59067f76287e386fb~mv2.jpg/leon.jpg#originWidth=3024&originHeight=4032` becomes `wix%3Aimage%3A%2F%2Fv1%2F0abec0_b291a9349a0b4da59067f76287e386fb~mv2.jpg%2Fleon.jpg%23originWidth%3D3024%26originHeight%3D4032`.
     * @maxLength 1000
     */
    fileId: string;
}
export interface GetFileDescriptorResponse {
    /** Information about the file. */
    file?: FileDescriptor;
}
export interface GetFileDescriptorsRequest {
    /**
     * File IDs.
     *
     * You can also specify the files' Wix media URLs. For example, `["wix:image://v1/0abec0_b291a9349a0b4da59067f76287e386fb~mv2.jpg/leon.jpg#originWidth=3024&originHeight=4032"]`.
     * Learn more about the file ID parameter ([SDK](https://dev.wix.com/docs/sdk/backend-modules/media/file-and-folder-ids#file-id-as-a-parameter) | [REST](https://dev.wix.com/docs/rest/assets/media/media-manager/files/file-id#file-id-as-a-parameter)).
     * @minSize 1
     * @maxSize 100
     * @maxLength 1000
     */
    fileIds: string[];
}
export interface GetFileDescriptorsResponse {
    /**
     * Information about the requested files.
     * @maxSize 100
     */
    files?: FileDescriptor[];
}
export interface UpdateFileDescriptorRequest {
    /** The file to update. */
    file: FileDescriptor;
    /**
     * Set of fields to update. Fields that aren't included in `fieldMask.paths` are ignored.
     * @internal
     */
    fieldMask?: string[];
}
export interface UpdateFileDescriptorResponse {
    /** Information about the updated file. */
    file?: FileDescriptor;
}
export interface UnsupportedRequestValueError {
    /**
     * Optional A list of allowed values
     * @maxSize 100
     * @maxLength 200
     */
    allowedValues?: string[];
    /**
     * The unsupported value send in the request
     * @maxLength 200
     */
    requestValue?: string;
}
export interface GenerateFileUploadUrlRequest {
    /**
     * File mime type.
     * @maxLength 100
     */
    mimeType: string | null;
    /**
     * Temporary file name used to identify the file type. For example, a file named "myFile.jpeg" identifies as an "image/jpeg" file type.
     * <br /> **Note:** The name that appears in the Media Manager is taken from the `filename` parameter in the Generate File Upload Url call.
     * @maxLength 200
     */
    fileName?: string | null;
    /**
     * File size in bytes.
     * @readonly
     * @format DECIMAL_VALUE
     * @decimalValue options { gte:0, maxScale:0 }
     */
    sizeInBytes?: string | null;
    /**
     * ID of the file's parent folder. <br />
     * This folder is the path root for the `filePath`.<br />
     * Default: `media-root`.
     * @maxLength 100
     */
    parentFolderId?: string | null;
    /** Whether the file will be public or private. Learn more about private files ([SDK](https://dev.wix.com/docs/rest/assets/media/media-manager/files/private-files) | [REST](https://dev.wix.com/docs/sdk/backend-modules/media/files/private-files)). */
    private?: boolean | null;
    /**
     * Labels assigned to media files that describe and categorize them. Provided by the Wix user, or generated by [Google Vision API](https://cloud.google.com/vision/docs/drag-and-drop) for images.
     * @maxSize 50
     * @maxLength 200
     */
    labels?: string[] | null;
    /** A place to map an external entity to an uploaded file in the Wix Media Manager. */
    externalInfo?: ExternalInfo;
    /**
     * The uploaded file will be created under this namespace
     * @internal
     * @maxLength 100
     */
    rawNamespace?: string | null;
    /**
     * The uploaded file will be created under this namespace
     * Note - Namespace value `Others` is not supported and will produce an error
     * @internal
     */
    namespace?: Namespace;
    /**
     * Path to the folder where the file will be stored.
     * For example, `/videos/2024/december`. <br/>
     * If `parentFolderId` is defined, the parent folder is used as the path root. Otherwise, the root is `media-root`.
     * The folders in the path will be created if they don't already exist.  <br />
     * @maxLength 100
     */
    filePath?: string | null;
    /**
     * Internal tags describing the item, can be used in specific clients use cases
     * @internal
     * @maxSize 100
     * @maxLength 200
     */
    internalTags?: string[];
    /**
     * The time in hours for a draft file to expire and be deleted
     * Allowed only on DRAFT namespace
     * parent folder id and file path are not allowed when using draft_ttl_in_hours
     * @internal
     * @min 1
     */
    draftTtlInHours?: number | null;
    /**
     * Configure what annotations will be done for an image file
     * @internal
     */
    imageAnnotationConfigurations?: ImageAnnotationConfigurations;
}
export interface ImageAnnotationConfigurations {
    /** Whether to skip detection for the image */
    skipDetection?: boolean | null;
    /**
     * A list of detections types to fill for the image
     * If specified at least one valid annotation type should be provided
     * Default will be all detections
     * @maxSize 10
     */
    annotationTypes?: ImageAnnotationType[];
}
export interface GenerateFileUploadUrlResponse {
    /**
     * The URL for uploading a file to the Media Manager.
     * @format WEB_URL
     */
    uploadUrl?: string;
}
export interface SiteQuotaExceededError {
    /**
     * Error codes are groups of related errors
     * The error code can be used to provide additional details to wix support while debugging service errors
     * @maxLength 200
     */
    internalCode?: string | null;
    /** Debugging information, http status code returned from wix media internal API */
    internalHttpStatusCode?: number | null;
    /**
     * Optional Debugging information, error key will represent the error "family" returned from wix media internal API
     * @maxLength 200
     */
    internalKey?: string | null;
    /** The quota details */
    quota?: TotalQuota;
}
export interface TotalQuota {
    /** Storage quota in bytes */
    storage?: string | null;
    /** Plans that are related to the quota */
    plans?: Plans;
    /** Time for which the quota is relevant - When the plans were retrieved from premium */
    timestamp?: Date | null;
}
export interface Plans {
    /** Premium Plan */
    premium?: Plan;
    /**
     * Upgrade URL - the URL which a site owner can use to upgrade their quota. May be empty if an upgrade is not available.
     * @format WEB_URL
     */
    upgradeUrl?: string;
}
export interface Plan {
    /**
     * Plan ID - Premium product ID
     * @readonly
     * @format GUID
     */
    id?: string;
    /** Plan name */
    name?: string;
    /** When the plan was created */
    createdAt?: Date | null;
    /** When then plan expires */
    expiresAt?: Date | null;
}
export interface GenerateFileResumableUploadUrlRequest {
    /**
     * File mime type.
     * @maxLength 100
     */
    mimeType: string | null;
    /**
     * Temporary file name used to identify the file type. For example, a file named "myFile.jpeg" identifies as an "image/jpeg" file type.
     * <br /> **Note:** The name that appears in the Media Manager is taken from the `filename` parameter in the Generate File Upload Url call.
     * @maxLength 200
     */
    fileName?: string | null;
    /**
     * File size in bytes.
     * @readonly
     * @format DECIMAL_VALUE
     * @decimalValue options { gte:0, maxScale:0 }
     */
    sizeInBytes?: string | null;
    /**
     * ID of the file's parent folder. <br />
     * This folder is the path root for the `filePath`.<br />
     * Default: `media-root`.
     * @maxLength 100
     */
    parentFolderId?: string | null;
    /** Whether the file will be public or private. Learn more about private files ([SDK](https://dev.wix.com/docs/rest/assets/media/media-manager/files/private-files) | [REST](https://dev.wix.com/docs/sdk/backend-modules/media/files/private-files)). */
    private?: boolean | null;
    /**
     * Labels assigned to media files that describe and categorize them. Provided by the Wix user, or generated by [Google Vision API](https://cloud.google.com/vision/docs/drag-and-drop) for images.
     * @maxSize 500
     * @maxLength 200
     */
    labels?: string[] | null;
    /** The upload protocol to use for implementing the resumable upload. */
    uploadProtocol?: UploadProtocol;
    /**
     * The uploaded file will be created under this namespace
     * @internal
     * @maxLength 100
     */
    rawNamespace?: string | null;
    /**
     * The uploaded file will be created under this namespace
     * Note - Namespace value `Others` is not supported and will produce an error
     * @internal
     */
    namespace?: Namespace;
    /**
     * Path to the folder where the file will be stored.
     * For example, `/videos/2024/december`. <br/>
     * If `parentFolderId` is defined, the parent folder is used as the path root. Otherwise, the root is `media-root`.
     * The folders in the path will be created if they don't already exist.  <br />
     * @maxLength 100
     */
    filePath?: string | null;
    /**
     * Internal tags describing the item, can be used in specific clients use cases
     * @internal
     * @maxSize 100
     * @maxLength 200
     */
    internalTags?: string[];
    /**
     * The time in hours for a draft file to expire and be deleted
     * Allowed only on DRAFT namespace
     * @internal
     * @min 1
     */
    draftTtlInHours?: number | null;
    /**
     * Configure what annotations will be done for an image file
     * @internal
     */
    imageAnnotationConfigurations?: ImageAnnotationConfigurations;
}
export declare enum UploadProtocol {
    /** The upload protocol to use for implementing the resumable upload. */
    TUS = "TUS"
}
export interface GenerateFileResumableUploadUrlResponse {
    /** The upload protocol to use for implementing the resumable upload. */
    uploadProtocol?: UploadProtocol;
    /**
     * The URL for uploading a file to the Media Manager.
     * @format WEB_URL
     */
    uploadUrl?: string;
    /**
     * Single-use upload token.
     * @maxLength 2000
     */
    uploadToken?: string;
}
export interface ImportFileRequest {
    /**
     * Publicly accessible external file URL.
     * @format WEB_URL
     */
    url: string;
    /**
     * Media type of the file to import.
     * excluding: OTHER media type
     */
    mediaType?: MediaType;
    /**
     * File name that appears in the Media Manager.
     * @maxLength 200
     */
    displayName?: string | null;
    /**
     * ID of the file's parent folder. <br />
     * This folder is the path root for the `filePath`. <br />
     * Default: `media-root`.
     * @maxLength 100
     */
    parentFolderId?: string | null;
    /** Whether the file will be public or private. Learn more about private files ([SDK](https://dev.wix.com/docs/rest/assets/media/media-manager/files/private-files) | [REST](https://dev.wix.com/docs/sdk/backend-modules/media/files/private-files)). */
    private?: boolean | null;
    /**
     * Labels assigned to media files that describe and categorize them. Provided by the Wix user, or generated by [Google Vision API](https://cloud.google.com/vision/docs/drag-and-drop) for images.
     * @maxSize 500
     * @maxLength 200
     */
    labels?: string[] | null;
    /**
     * File mime type.
     * @maxLength 100
     */
    mimeType?: string;
    /** Information sent to the File Ready and File Failed events. See Importing Files ([SDK](https://dev.wix.com/docs/sdk/backend-modules/media/files/importing-files#backend-modules_media_files_using-externalinfo) | [REST](https://dev.wix.com/docs/rest/assets/media/media-manager/files/importing-files#using-externalinfo)) to learn more. */
    externalInfo?: ExternalInfo;
    /** Optional parameters that should be sent with the external URL. */
    urlParams?: Record<string, any> | null;
    /** Optional headers that should be sent with the external URL. */
    urlHeaders?: Record<string, any> | null;
    /**
     * The imported file will be created under this namespace
     * @internal
     * @maxLength 100
     */
    rawNamespace?: string | null;
    /**
     * The imported file will be created under this namespace
     * Note - Namespace value `Others` is not supported and will produce an error
     * @internal
     */
    namespace?: Namespace;
    /**
     * Path to the folder where the file will be stored.
     * For example, `/videos/2024/december`. <br/>
     * If `parentFolderId` is defined, the parent folder is used as the path root. Otherwise, the root is `media-root`.
     * The folders in the path will be created if they don't already exist.  <br />
     * @maxLength 100
     */
    filePath?: string | null;
    /**
     * Internal tags describing the item, can be used in specific clients use cases
     * @internal
     * @maxSize 100
     * @maxLength 200
     */
    internalTags?: string[];
    /**
     * The time in hours for a draft file to expire and be deleted
     * Allowed only on DRAFT namespace
     * @internal
     * @min 1
     */
    draftTtlInHours?: number | null;
    /**
     * Configure what annotations will be done for an image file
     * @internal
     */
    imageAnnotationConfigurations?: ImageAnnotationConfigurations;
}
export interface ImportFileResponse {
    /** Information about the imported file. */
    file?: FileDescriptor;
}
export interface BulkImportFilesRequest {
    /**
     * Information about the files to import.
     * @minSize 1
     * @maxSize 100
     */
    importFileRequests: ImportFileRequest[];
}
export interface BulkImportFilesResponse {
    /**
     * Information about the imported files.
     * @maxSize 100
     */
    files?: FileDescriptor[];
}
export interface BulkImportFileRequest {
    /**
     * Information about the files to import.
     * @minSize 1
     * @maxSize 100
     */
    importFileRequests: ImportFileRequest[];
    /** Default: `true` */
    returnEntity?: boolean | null;
}
export interface BulkImportFileResponse {
    /** Items created by bulk action. */
    results?: BulkImportFileResult[];
    /** Bulk action metadata. */
    bulkActionMetadata?: BulkActionMetadata;
}
export interface BulkImportFileResult {
    /** Item metadata. */
    itemMetadata?: ItemMetadata;
    /** Imported file. This field is included in the response if the operation was successful and `returnEntity` is not set to `false`. */
    item?: FileDescriptor;
}
export interface ListFilesRequest {
    /**
     * ID of the file's parent folder.
     *
     * Default: `media-root`.
     * @maxLength 100
     */
    parentFolderId?: string | null;
    /**
     * File media type.
     * @maxSize 30
     */
    mediaTypes?: MediaType[];
    /**
     * Whether to return only private or only public files.
     * + `true`: Returns only private files.
     * + `false`: Returns only public files.
     * + `undefined`: Returns public and private files.
     *
     * Learn more about private files ([SDK](https://dev.wix.com/docs/rest/assets/media/media-manager/files/private-files) | [REST](https://dev.wix.com/docs/sdk/backend-modules/media/files/private-files)).
     */
    private?: boolean | null;
    /**
     * Field name and order to sort by. One of:
     *
     * `displayName`
     * `updatedDate`
     * `sizeInBytes`
     *
     * Default: `updatedDate` in `desc` order.
     */
    sort?: Sorting;
    /** Cursor and paging information. */
    paging?: CursorPaging;
    /**
     * List files of the specified namespace
     * @internal
     * @maxLength 100
     */
    rawNamespace?: string | null;
    /**
     * List files of the specified namespace
     * Note - Namespace value `Others` is not supported and will produce an error
     * @internal
     */
    namespace?: Namespace;
}
export interface Sorting {
    /**
     * Name of the field to sort by.
     * @maxLength 512
     */
    fieldName?: string;
    /** Sort order. */
    order?: SortOrder;
    /**
     * When `field_name` is a property of repeated field that is marked as `MATCH_ITEMS` and sort should be done by
     * a specific element from a collection, filter can/should be provided to ensure correct sort value is picked.
     *
     * If multiple filters are provided, they are combined with AND operator.
     *
     * Example:
     * Given we have document like {"id": "1", "nestedField": [{"price": 10, "region": "EU"}, {"price": 20, "region": "US"}]}
     * and `nestedField` is marked as `MATCH_ITEMS`, to ensure that sorting is done by correct region, filter should be
     * { fieldName: "nestedField.price", "select_items_by": [{"nestedField.region": "US"}] }
     * @internal
     * @maxSize 10
     */
    selectItemsBy?: Record<string, any>[] | null;
}
export declare enum SortOrder {
    ASC = "ASC",
    DESC = "DESC"
}
export interface CursorPaging {
    /**
     * Maximum number of items to return in the results.
     * @max 100
     */
    limit?: number | null;
    /**
     * Pointer to the next or previous page in the list of results.
     *
     * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.
     * Not relevant for the first request.
     * @maxLength 16000
     */
    cursor?: string | null;
}
export interface ListFilesResponse {
    /**
     * List of files in the Media Manager.
     * @maxSize 200
     */
    files?: FileDescriptor[];
    /** The next cursor if it exists. */
    nextCursor?: PagingMetadataV2;
}
export interface PagingMetadataV2 {
    /** Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set. */
    total?: number | null;
    /** Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used. */
    cursors?: Cursors;
    /**
     * Indicates if there are more results after the current page.
     * If `true`, another page of results can be retrieved.
     * If `false`, this is the last page.
     * @internal
     */
    hasNext?: boolean | null;
}
export interface Cursors {
    /**
     * Cursor string pointing to the next page in the list of results.
     * @maxLength 16000
     */
    next?: string | null;
}
export interface SearchFilesRequest {
    /**
     * Free text to match in searchable fields.
     *
     * For example, search for specific values in a file's
     * `displayName`, `mimeType`, or `label`.
     * @maxLength 200
     */
    search?: string | null;
    /**
     * The root folder in the media manager to search in.
     * For more information, see Root Folders in Terminology ([SDK](https://dev.wix.com/docs/sdk/backend-modules/media/introduction#terminology) | [REST](https://dev.wix.com/docs/rest/assets/media/media-manager/introduction#terminology)).
     *
     * Default: `MEDIA_ROOT`.
     */
    rootFolder?: RootFolder;
    /**
     * File media type.
     * @maxSize 30
     */
    mediaTypes?: MediaType[];
    /**
     * Whether to return only private or only public files.
     * + `true`: Returns only private files.
     * + `false`: Returns only public files.
     * + `undefined`: Returns public and private files.
     *
     * Learn more about private files ([SDK](https://dev.wix.com/docs/rest/assets/media/media-manager/files/private-files) | [REST](https://dev.wix.com/docs/sdk/backend-modules/media/files/private-files)).
     */
    private?: boolean | null;
    /**
     * Field name and order to sort by.
     *
     * One of:
     * `displayName`
     * `updatedDate`
     * `sizeInBytes`
     *
     * Default: `updatedDate` in `desc` order.
     */
    sort?: Sorting;
    /** Cursor and paging information. */
    paging?: CursorPaging;
    /**
     * search by an internal tag that describe the item - for internal wix use only
     * @internal
     * @maxLength 200
     */
    internalTag?: string | null;
    /**
     * Search files of the specified namespace
     * @internal
     * @maxLength 100
     */
    rawNamespace?: string | null;
    /**
     * Search files of the specified namespace <br/>
     * Note - Namespace value `Others` is not supported in this request and will produce an error
     * @internal
     */
    namespace?: Namespace;
}
export declare enum RootFolder {
    /** Contains all files and folders in the Media Manager's **Site Files** tab in the UI. */
    MEDIA_ROOT = "MEDIA_ROOT",
    /** Contains all files and folders in the Media Manager's **Trash** tab in the UI. */
    TRASH_ROOT = "TRASH_ROOT",
    /** Contains all files and folders created by site visitors or members. */
    VISITOR_UPLOADS_ROOT = "VISITOR_UPLOADS_ROOT"
}
export interface SearchFilesResponse {
    /**
     * Retrieved files that match the search criteria specified in the request.
     *
     * Each file includes all standard file information.
     * @maxSize 200
     */
    files?: FileDescriptor[];
    /** The next cursor if it exists. */
    nextCursor?: PagingMetadataV2;
}
export interface GenerateVideoStreamingUrlRequest {
    /**
     * File ID.
     *
     * You can also specify the file's Wix media URL. For example, `wix:image://v1/0abec0_b291a9349a0b4da59067f76287e386fb~mv2.jpg/leon.jpg#originWidth=3024&originHeight=4032`.
     * Learn more about the file ID parameter ([SDK](https://dev.wix.com/docs/sdk/backend-modules/media/file-and-folder-ids#file-id-as-a-parameter) | [REST](https://dev.wix.com/docs/rest/assets/media/media-manager/files/file-id#file-id-as-a-parameter)).
     * @maxLength 1000
     */
    fileId: string;
    /** Video stream format. */
    format?: StreamFormat;
}
export declare enum StreamFormat {
    UNKNOWN = "UNKNOWN",
    HLS = "HLS",
    DASH = "DASH"
}
export interface GenerateVideoStreamingUrlResponse {
    /** URL for streaming a specific file in the Media Manager. */
    downloadUrl?: DownloadUrl;
}
export interface GenerateWebSocketTokenRequest {
}
export interface GenerateWebSocketTokenResponse {
    /**
     * The web socket token for the identity in the request
     * @maxLength 2000
     */
    token?: string;
}
export interface BulkDeleteFilesRequest {
    /**
     * IDs of the files to move to the Media Manager's trash bin.
     *
     * You can also specify the files' Wix media URLs. For example, `["wix:image://v1/0abec0_b291a9349a0b4da59067f76287e386fb~mv2.jpg/leon.jpg#originWidth=3024&originHeight=4032"]`.
     * Learn more about the file ID parameter ([SDK](https://dev.wix.com/docs/sdk/backend-modules/media/file-and-folder-ids#file-id-as-a-parameter) | [REST](https://dev.wix.com/docs/rest/assets/media/media-manager/files/file-id#file-id-as-a-parameter)).
     * @maxSize 1000
     * @maxLength 1000
     */
    fileIds: string[];
    /**
     * Whether the specified files are permanently deleted. <br />
     * Default: `false`
     */
    permanent?: boolean;
}
export interface BulkDeleteFilesResponse {
}
export interface BulkRestoreFilesFromTrashBinRequest {
    /**
     * IDs of the files to restore from the Media Manager's trash bin.
     *
     * You can also specify the files' Wix media URLs. For example, `["wix:image://v1/0abec0_b291a9349a0b4da59067f76287e386fb~mv2.jpg/leon.jpg#originWidth=3024&originHeight=4032"]`.
     * Learn more about the file ID parameter ([SDK](https://dev.wix.com/docs/sdk/backend-modules/media/file-and-folder-ids#file-id-as-a-parameter) | [REST](https://dev.wix.com/docs/rest/assets/media/media-manager/files/file-id#file-id-as-a-parameter)).
     * @maxSize 1000
     * @maxLength 1000
     */
    fileIds: string[];
}
export interface BulkRestoreFilesFromTrashBinResponse {
}
export interface ListDeletedFilesRequest {
    /**
     * ID of the file's parent folder. <br />
     * Default: `media-root`.
     * @maxLength 100
     */
    parentFolderId?: string | null;
    /**
     * File media type.
     * @maxSize 30
     */
    mediaTypes?: MediaType[];
    /** \n`true`: Returns only private files. \n`false`: Returns only public files. \n`undefined`: Returns public and private files. \n Learn more about private files ([SDK](https://dev.wix.com/docs/rest/assets/media/media-manager/files/private-files) | [REST](https://dev.wix.com/docs/sdk/backend-modules/media/files/private-files)). */
    private?: boolean | null;
    /**
     * Field name and order to sort by. One of: <br />
     * * `displayName`
     * * `updatedDate`
     * * `sizeInBytes`
     * Default: `updatedDate` in `desc` order.
     */
    sort?: Sorting;
    /** Cursor and paging information. */
    paging?: CursorPaging;
    /**
     * List files of the specified namespace
     * @internal
     * @maxLength 100
     */
    rawNamespace?: string | null;
    /**
     * List files of the specified namespace
     * Note - Namespace value `Others` is not supported and will produce an error
     * @internal
     */
    namespace?: Namespace;
}
export interface ListDeletedFilesResponse {
    /**
     * List of files in the Media Manager's trash bin.
     * @maxSize 200
     */
    files?: FileDescriptor[];
    /** The next cursor if it exists. */
    nextCursor?: PagingMetadataV2;
}
export interface BulkPublishDraftFilesRequest {
    /**
     * IDs of the draft files to be published.
     *
     * You can also specify the files' Wix media URLs. For example, `["wix:image://v1/0abec0_b291a9349a0b4da59067f76287e386fb~mv2.jpg/leon.jpg#originWidth=3024&originHeight=4032"]`.
     * Learn more about the file ID parameter ([SDK](https://dev.wix.com/docs/sdk/backend-modules/media/file-and-folder-ids#file-id-as-a-parameter) | [REST](https://dev.wix.com/docs/rest/assets/media/media-manager/files/file-id#file-id-as-a-parameter)).
     * @maxSize 100
     * @maxLength 1000
     */
    fileIds: string[];
    /**
     * The namespace the files will be published to
     * Note, private files must have a namespace
     */
    namespace?: Namespace;
    /**
     * ID of the file's parent folder. <br />
     * This folder is the path root for the `filePath`. <br />
     * Default: `media-root`.
     * @maxLength 100
     */
    parentFolderId?: string | null;
    /**
     * Path to the folder where the file will be stored.
     * For example, `/videos/2024/december`. <br/>
     * If `parentFolderId` is defined, the parent folder is used as the path root. Otherwise, the root is `media-root`.
     * The folders in the path will be created if they don't already exist.  <br />
     * @maxLength 100
     */
    filePath?: string | null;
    /** Should the response return the item following the operation */
    returnEntity?: boolean;
}
export interface BulkPublishDraftFilesResponse {
    /** Results of individual items */
    results?: BulkPublishDraftFileResult[];
    /** Metadata of the operation */
    bulkActionMetadata?: BulkActionMetadata;
}
export interface BulkPublishDraftFileResult {
    /** Item metadata */
    itemMetadata?: ItemMetadata;
    /**
     * The item following the operation
     * Only returned if operation was successful and if returnEntity flag was on
     */
    item?: FileDescriptor;
}
export interface UpdateFileRequest {
    /**
     * ID of the file to update.
     *
     * You can also specify the file's Wix media URL. For example, `wix:image://v1/0abec0_b291a9349a0b4da59067f76287e386fb~mv2.jpg/leon.jpg#originWidth=3024&originHeight=4032`.
     * Learn more about the file ID parameter ([SDK](https://dev.wix.com/docs/sdk/backend-modules/media/file-and-folder-ids#file-id-as-a-parameter) | [REST](https://dev.wix.com/docs/rest/assets/media/media-manager/files/file-id#file-id-as-a-parameter)).
     * @maxLength 1000
     */
    fileId: string;
    /**
     * File name that appears in the Media Manager.
     * @maxLength 200
     */
    displayName?: string | null;
    /**
     * ID of the file's parent folder. <br />
     * Default: `media-root`.
     * @maxLength 100
     */
    parentFolderId?: string | null;
    /**
     * Labels assigned to media files that describe and categorize them. Provided by the Wix user, or generated by [Google Vision API](https://cloud.google.com/vision/docs/drag-and-drop) for images.
     * @maxSize 500
     * @maxLength 200
     */
    labels?: string[] | null;
}
export interface UpdateFileResponse {
    /** Information about the updated file. */
    file?: FileDescriptor;
}
export interface DomainEvent extends DomainEventBodyOneOf {
    createdEvent?: EntityCreatedEvent;
    updatedEvent?: EntityUpdatedEvent;
    deletedEvent?: EntityDeletedEvent;
    actionEvent?: ActionEvent;
    /** Event ID. With this ID you can easily spot duplicated events and ignore them. */
    id?: string;
    /**
     * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.
     * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.
     */
    entityFqdn?: string;
    /**
     * Event action name, placed at the top level to make it easier for users to dispatch messages.
     * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.
     */
    slug?: string;
    /** ID of the entity associated with the event. */
    entityId?: string;
    /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */
    eventTime?: Date | null;
    /**
     * Whether the event was triggered as a result of a privacy regulation application
     * (for example, GDPR).
     */
    triggeredByAnonymizeRequest?: boolean | null;
    /** If present, indicates the action that triggered the event. */
    originatedFrom?: string | null;
    /**
     * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at 16:00 and then again at 16:01, the second update will always have a higher sequence number.
     * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it.
     */
    entityEventSequence?: string | null;
}
/** @oneof */
export interface DomainEventBodyOneOf {
    createdEvent?: EntityCreatedEvent;
    updatedEvent?: EntityUpdatedEvent;
    deletedEvent?: EntityDeletedEvent;
    actionEvent?: ActionEvent;
}
export interface EntityCreatedEvent {
    entityAsJson?: string;
    /**
     * Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity
     * @internal
     */
    triggeredByUndelete?: boolean | null;
    /** Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity */
    restoreInfo?: RestoreInfo;
    /**
     * WIP
     * @internal
     */
    additionalMetadataAsJson?: string | null;
}
export interface RestoreInfo {
    deletedDate?: Date | null;
}
export interface EntityUpdatedEvent {
    /**
     * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.
     * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.
     * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.
     */
    currentEntityAsJson?: string;
    /**
     * This field is currently part of the of the EntityUpdatedEvent msg, but scala/node libraries which implements the domain events standard
     * wont populate it / have any reference to it in the API.
     * The main reason for it is that fetching the old entity from the DB will have a performance hit on an update operation so unless truly needed,
     * the developer should send only the new (current) entity.
     * An additional reason is not wanting to send this additional entity over the wire (kafka) since in some cases it can be really big
     * Developers that must reflect the old entity will have to implement their own domain event sender mechanism which will follow the DomainEvent proto message.
     * @internal
     * @deprecated
     */
    previousEntityAsJson?: string | null;
    /**
     * WIP - This property will hold both names and previous values of the updated fields of the entity.
     * For more details please see [adr](https://docs.google.com/document/d/1PdqsOM20Ph2HAkmx8zvUnzzk3Sekp3BR9h34wSvsRnI/edit#heading=h.phlw87mh2imx) or [issue](https://github.com/wix-private/nile-tracker/issues/363)
     * @internal
     */
    modifiedFields?: Record<string, any>;
    /**
     * WIP
     * @internal
     */
    additionalMetadataAsJson?: string | null;
}
export interface EntityDeletedEvent {
    /**
     * Indicates if the entity is sent to trash-bin. only available when trash-bin is enabled
     * @internal
     */
    movedToTrash?: boolean | null;
    /** Entity that was deleted. */
    deletedEntityAsJson?: string | null;
    /**
     * WIP
     * @internal
     */
    additionalMetadataAsJson?: string | null;
}
export interface ActionEvent {
    bodyAsJson?: string;
}
export interface MessageEnvelope {
    /**
     * App instance ID.
     * @format GUID
     */
    instanceId?: string | null;
    /**
     * Event type.
     * @maxLength 150
     */
    eventType?: string;
    /** The identification type and identity data. */
    identity?: IdentificationData;
    /** Stringify payload. */
    data?: string;
}
export interface IdentificationData extends IdentificationDataIdOneOf {
    /**
     * ID of a site visitor that has not logged in to the site.
     * @format GUID
     */
    anonymousVisitorId?: string;
    /**
     * ID of a site visitor that has logged in to the site.
     * @format GUID
     */
    memberId?: string;
    /**
     * ID of a Wix user (site owner, contributor, etc.).
     * @format GUID
     */
    wixUserId?: string;
    /**
     * ID of an app.
     * @format GUID
     */
    appId?: string;
    /** @readonly */
    identityType?: WebhookIdentityType;
}
/** @oneof */
export interface IdentificationDataIdOneOf {
    /**
     * ID of a site visitor that has not logged in to the site.
     * @format GUID
     */
    anonymousVisitorId?: string;
    /**
     * ID of a site visitor that has logged in to the site.
     * @format GUID
     */
    memberId?: string;
    /**
     * ID of a Wix user (site owner, contributor, etc.).
     * @format GUID
     */
    wixUserId?: string;
    /**
     * ID of an app.
     * @format GUID
     */
    appId?: string;
}
export declare enum WebhookIdentityType {
    UNKNOWN = "UNKNOWN",
    ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR",
    MEMBER = "MEMBER",
    WIX_USER = "WIX_USER",
    APP = "APP"
}
/** @docsIgnore */
export declare type GenerateFileDownloadUrlValidationErrors = {
    ruleName?: 'INVALID_ASSET_KEY';
};
/** @docsIgnore */
export declare type GetFileDescriptorValidationErrors = {
    ruleName?: 'RESOURCE_NOT_FOUND';
};
/** @docsIgnore */
export declare type GetFileDescriptorsValidationErrors = {
    ruleName?: 'RESOURCE_NOT_FOUND';
};
/** @docsIgnore */
export declare type UpdateFileDescriptorValidationErrors = {
    ruleName?: 'FIELD_MASK_IS_EMPTY_OR_MISSING';
};
/** @docsIgnore */
export declare type GenerateFileUploadUrlValidationErrors = {
    ruleName?: 'MISMATCH_MIME_TYPE';
} | {
    ruleName?: 'ZERO_FILE_SIZE';
} | {
    ruleName?: 'UNSUPPORTED_FILE_FORMAT';
} | {
    ruleName?: 'FILE_SIZE_OVER_LIMIT';
} | {
    ruleName?: 'SITE_QUOTA_EXCEEDED';
};
/** @docsIgnore */
export declare type GenerateFileResumableUploadUrlValidationErrors = {
    ruleName?: 'MISMATCH_MIME_TYPE';
} | {
    ruleName?: 'ZERO_FILE_SIZE';
} | {
    ruleName?: 'UNSUPPORTED_FILE_FORMAT';
} | {
    ruleName?: 'FILE_SIZE_OVER_LIMIT';
};
/** @docsIgnore */
export declare type ImportFileValidationErrors = {
    ruleName?: 'SITE_QUOTA_EXCEEDED';
};
/** @docsIgnore */
export declare type ListFilesValidationErrors = {
    ruleName?: 'UNSUPPORTED_MEDIA_TYPE';
} | {
    ruleName?: 'UNSUPPORTED_SORT_VALUE';
};
/** @docsIgnore */
export declare type SearchFilesValidationErrors = {
    ruleName?: 'UNSUPPORTED_MEDIA_TYPE';
} | {
    ruleName?: 'UNSUPPORTED_SORT_VALUE';
};
/** @docsIgnore */
export declare type ListDeletedFilesValidationErrors = {
    ruleName?: 'UNSUPPORTED_MEDIA_TYPE';
} | {
    ruleName?: 'UNSUPPORTED_SORT_VALUE';
};
