import * as z from "zod/v3"; import { ClosedEnum } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export declare const ResourceType: { readonly Media: "media"; readonly Folder: "folder"; readonly Subfolder: "subfolder"; readonly Channel: "channel"; readonly ChannelEpisode: "channel_episode"; readonly Webinar: "webinar"; }; export type ResourceType = ClosedEnum; export type GetSearchRequest = { /** * The search query string */ q: string; /** * Filter results by one or more tag names. When multiple tags are provided, results matching any of the specified tags are returned (OR logic). */ tags?: Array | undefined; /** * Filter results by one or more resource types. */ resourceType?: Array | undefined; /** * Filter results created on or after this datetime. Must be a valid ISO8601 timestamp in UTC (ending with 'Z'). */ createdAfter?: Date | undefined; /** * Filter results created on or before this datetime. Must be a valid ISO8601 timestamp in UTC (ending with 'Z'). */ createdBefore?: Date | undefined; }; /** * A string representing what type of media this is. */ export declare const FolderType: { readonly Video: "Video"; readonly Audio: "Audio"; readonly Image: "Image"; readonly PdfDocument: "PdfDocument"; readonly MicrosoftOfficeDocument: "MicrosoftOfficeDocument"; readonly Swf: "Swf"; readonly UnknownType: "UnknownType"; }; /** * A string representing what type of media this is. */ export type FolderType = ClosedEnum; /** * Post upload processing status. - `queued`: the file is waiting in the queue to be processed. - `processing`: the file is actively being processed. - `ready`: the file has been fully processed and is ready for embedding and viewing. - `failed`: the file was unable to be processed (usually a format or size error). * * @remarks */ export declare const FolderStatus: { readonly Queued: "queued"; readonly Processing: "processing"; readonly Ready: "ready"; readonly Failed: "failed"; }; /** * Post upload processing status. - `queued`: the file is waiting in the queue to be processed. - `processing`: the file is actively being processed. - `ready`: the file has been fully processed and is ready for embedding and viewing. - `failed`: the file was unable to be processed (usually a format or size error). * * @remarks */ export type FolderStatus = ClosedEnum; export type FolderThumbnail = { url?: string | undefined; width?: number | undefined; height?: number | undefined; }; /** * A link to where you can fetch the medias for this folder. */ export type GetSearchMedias = { /** * A unique numeric identifier for the media within the system. */ id?: number | undefined; /** * The display name of the media. */ name?: string | undefined; /** * A string representing what type of media this is. */ type?: FolderType | undefined; /** * Whether or not the media is archived, either true or false. */ archived?: boolean | undefined; /** * The date when the media was originally uploaded. */ created?: Date | undefined; /** * The date when the media was last changed. */ updated?: Date | undefined; /** * Specifies the length (in seconds) for audio and video files. Specifies number of pages in the document. Omitted for other types of media. */ duration?: number | null | undefined; /** * DEPRECATED: If you want to programmatically embed videos, follow the construct an embed code guide. * * @remarks * * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ embedCode?: string | undefined; /** * A unique alphanumeric identifier for this media. */ hashedId?: string | undefined; /** * A description for the media which usually appears near the top of the sidebar on the media's page. */ description?: string | undefined; /** * A floating point value between 0 and 1 that indicates the progress of the processing for this file. */ progress?: number | undefined; /** * Post upload processing status. - `queued`: the file is waiting in the queue to be processed. - `processing`: the file is actively being processed. - `ready`: the file has been fully processed and is ready for embedding and viewing. - `failed`: the file was unable to be processed (usually a format or size error). * * @remarks */ status?: FolderStatus | undefined; /** * The title of the section in which the media appears. This attribute is omitted if the media is not in a section (default). */ section?: string | null | undefined; thumbnail?: FolderThumbnail | undefined; }; /** * A folder (previously called a project) is a container in which to organize media into. It can be * * @remarks * used to set permissions that apply to all the media in the folder as well as * organizing media into subfolders (previously called media groups). */ export type GetSearchFolder = { /** * A unique numeric identifier for the folder within the system. */ id: number; /** * The folder’s display name. */ name: string; /** * The folder’s description. */ description?: string | null | undefined; /** * The number of different medias that have been uploaded to the folder. */ mediaCount: number; /** * A link to where you can fetch the medias for this folder. */ medias: GetSearchMedias; /** * The date that the folder was originally created. */ created: Date; /** * The date that the folder was last updated. */ updated: Date; /** * A private hashed id, uniquely identifying the folder within the system. */ hashedId: string; /** * A boolean indicating whether the folder is available for public (anonymous) viewing. */ public: boolean; /** * If the folder is public, this field contains a string representing the ID used for referencing the folder in public URLs. */ publicId: string | null; anonymousCanUpload?: boolean | undefined; anonymousCanDownload?: boolean | undefined; /** * A cursor for stable pagination based on current `sort_by` order. You can pass this to `cursor[before]` or `cursor[after]` as a parameter to fetch the records before or after this record in the same sort order. This is only populated if records were fetched with `cursor[enabled]`, or `cursor[before]` or `cursor[after]`. */ cursor?: string | null | undefined; }; /** * A subfolder within a folder that contains media. */ export type GetSearchSubfolder = { /** * A unique alphanumeric identifier for this subfolder. */ hashedId: string; /** * The display name of the subfolder. */ name?: string | null | undefined; /** * A description for the subfolder. */ description?: string | null | undefined; /** * The position of this subfolder within its folder, used for ordering. */ position: number | null; /** * The date when the subfolder was created. */ created: Date | null; /** * The date when the subfolder was last modified. */ updated: Date | null; /** * A cursor for stable pagination based on current `sort_by` order. You can pass this to `cursor[before]` or `cursor[after]` as a parameter to fetch the records before or after this record in the same sort order. This is only populated if records were fetched with `cursor[enabled]`, or `cursor[before]` or `cursor[after]`. */ cursor?: string | null | undefined; }; /** * A string representing what type of media this is. */ export declare const GetSearchMediaType: { readonly Video: "Video"; readonly Audio: "Audio"; readonly Image: "Image"; readonly PdfDocument: "PdfDocument"; readonly MicrosoftOfficeDocument: "MicrosoftOfficeDocument"; readonly Swf: "Swf"; readonly UnknownType: "UnknownType"; }; /** * A string representing what type of media this is. */ export type GetSearchMediaType = ClosedEnum; /** * Post upload processing status. - `queued`: the file is waiting in the queue to be processed. - `processing`: the file is actively being processed. - `ready`: the file has been fully processed and is ready for embedding and viewing. - `failed`: the file was unable to be processed (usually a format or size error). * * @remarks */ export declare const GetSearchMediaStatus: { readonly Queued: "queued"; readonly Processing: "processing"; readonly Ready: "ready"; readonly Failed: "failed"; }; /** * Post upload processing status. - `queued`: the file is waiting in the queue to be processed. - `processing`: the file is actively being processed. - `ready`: the file has been fully processed and is ready for embedding and viewing. - `failed`: the file was unable to be processed (usually a format or size error). * * @remarks */ export type GetSearchMediaStatus = ClosedEnum; export type GetSearchMediaThumbnail = { url?: string | undefined; width?: number | undefined; height?: number | undefined; }; export type TranscriptMatch = { /** * The matched transcript text with context */ text: string; /** * Start time of the match in seconds */ startTimeSeconds: number; /** * Human-readable start time (e.g., "0:03" or "1:23:45") */ startTimeFormatted: string; /** * Thumbnail URL at the match timestamp */ thumbnailUrl: string | null; }; /** * A media generally represents a video or an audio which can be embedded into your website. * * @remarks * * CDN-backed medias are accessible using this url structure: https://fast.wistia.com/embed/medias/{hashed_id}.m3u8. * For more information, see https://docs.wistia.com/docs/asset-urls#getting-hls-assets. */ export type GetSearchMedia = { /** * A unique numeric identifier for the media within the system. */ id?: number | undefined; /** * The display name of the media. */ name?: string | undefined; /** * A string representing what type of media this is. */ type?: GetSearchMediaType | undefined; /** * Whether or not the media is archived, either true or false. */ archived?: boolean | undefined; /** * The date when the media was originally uploaded. */ created?: Date | undefined; /** * The date when the media was last changed. */ updated?: Date | undefined; /** * Specifies the length (in seconds) for audio and video files. Specifies number of pages in the document. Omitted for other types of media. */ duration?: number | null | undefined; /** * DEPRECATED: If you want to programmatically embed videos, follow the construct an embed code guide. * * @remarks * * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ embedCode?: string | undefined; /** * A unique alphanumeric identifier for this media. */ hashedId?: string | undefined; /** * A description for the media which usually appears near the top of the sidebar on the media's page. */ description?: string | undefined; /** * A floating point value between 0 and 1 that indicates the progress of the processing for this file. */ progress?: number | undefined; /** * Post upload processing status. - `queued`: the file is waiting in the queue to be processed. - `processing`: the file is actively being processed. - `ready`: the file has been fully processed and is ready for embedding and viewing. - `failed`: the file was unable to be processed (usually a format or size error). * * @remarks */ status?: GetSearchMediaStatus | undefined; /** * The title of the section in which the media appears. This attribute is omitted if the media is not in a section (default). */ section?: string | null | undefined; thumbnail?: GetSearchMediaThumbnail | undefined; /** * The hashed ID of the folder this media belongs to */ folderHashedId: string | null; /** * Array of transcript matches with timestamps */ transcriptMatches: Array; }; export type Channel = { /** * A unique numeric identifier for the channel within the system. */ id: number; /** * A unique alphanumeric identifier for this channel. */ hashedId: string; /** * The display name for the channel. */ name: string; /** * The channel's description. */ description: string; /** * The number of medias in the channel. */ mediaCount: number; /** * The date when the channel was originally created. */ created: Date; /** * The date when the channel was last updated. */ updated: Date; }; export type ChannelEpisode = { /** * A unique numeric identifier for the channel episode within the system. */ id: number; /** * A unique alphanumeric identifier for this channel episode. */ hashedId: string; /** * The title of the channel episode. */ title?: string | null | undefined; /** * The episode notes for the channel episode. */ description: string; /** * The description of the channel episode. */ summary: string; /** * The hashed ID of the channel this episode belongs to. */ channelHashedId: string | null; /** * The hashed ID of the media associated with this channel episode. */ mediaHashedId: string | null; /** * Whether the channel episode is published. */ published: boolean; /** * The date when the channel episode was originally created. */ created: Date; /** * The date when the channel episode was last updated. */ updated: Date; /** * The scheduled publish date (only present if scheduled). */ publishAt?: Date | null | undefined; }; /** * A webinar is an event which allows you to stream a video * * @remarks * to multiple participants. See our [Webinars Guide](https://support.wistia.com/en/articles/8288501-getting-started-with-webinars) * for more info. */ export type GetSearchWebinar = { /** * The hashed ID of the webinar */ id: string; /** * The title of the webinar */ title: string; /** * The description of the webinar */ description?: string | null | undefined; /** * The scheduled start time in W3C format with timezone */ scheduledFor?: Date | null | undefined; /** * Duration of the webinar in minutes */ eventDuration?: number | null | undefined; /** * Current lifecycle status of the event */ lifecycleStatus: string; /** * Registration status of the event */ registrationStatus: string; /** * When the event was created (UTC) */ createdAt: Date; /** * When the event was last updated (UTC) */ updatedAt: Date; /** * Link for the audience to join the event */ audienceLink: string; /** * Link for the host to manage the event */ hostLink: string; /** * Link for panelists to join the event */ panelistLink: string; }; export type GetSearchData = { folders: Array; subfolders: Array; medias: Array; channels: Array; channelEpisodes: Array; webinars: Array; }; /** * Search results */ export type GetSearchResponse = { data: GetSearchData; }; /** @internal */ export declare const ResourceType$outboundSchema: z.ZodNativeEnum; /** @internal */ export type GetSearchRequest$Outbound = { q: string; "tags[]"?: Array | undefined; "resource_type[]"?: Array | undefined; created_after?: string | undefined; created_before?: string | undefined; }; /** @internal */ export declare const GetSearchRequest$outboundSchema: z.ZodType; export declare function getSearchRequestToJSON(getSearchRequest: GetSearchRequest): string; /** @internal */ export declare const FolderType$inboundSchema: z.ZodNativeEnum; /** @internal */ export declare const FolderStatus$inboundSchema: z.ZodNativeEnum; /** @internal */ export declare const FolderThumbnail$inboundSchema: z.ZodType; export declare function folderThumbnailFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const GetSearchMedias$inboundSchema: z.ZodType; export declare function getSearchMediasFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const GetSearchFolder$inboundSchema: z.ZodType; export declare function getSearchFolderFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const GetSearchSubfolder$inboundSchema: z.ZodType; export declare function getSearchSubfolderFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const GetSearchMediaType$inboundSchema: z.ZodNativeEnum; /** @internal */ export declare const GetSearchMediaStatus$inboundSchema: z.ZodNativeEnum; /** @internal */ export declare const GetSearchMediaThumbnail$inboundSchema: z.ZodType; export declare function getSearchMediaThumbnailFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const TranscriptMatch$inboundSchema: z.ZodType; export declare function transcriptMatchFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const GetSearchMedia$inboundSchema: z.ZodType; export declare function getSearchMediaFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const Channel$inboundSchema: z.ZodType; export declare function channelFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const ChannelEpisode$inboundSchema: z.ZodType; export declare function channelEpisodeFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const GetSearchWebinar$inboundSchema: z.ZodType; export declare function getSearchWebinarFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const GetSearchData$inboundSchema: z.ZodType; export declare function getSearchDataFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const GetSearchResponse$inboundSchema: z.ZodType; export declare function getSearchResponseFromJSON(jsonString: string): SafeParseResult; //# sourceMappingURL=getsearch.d.ts.map