import * as z from "zod";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export type GetVideoViewsGlobals = {
    /**
     * The cloud name of your product environment.
     */
    cloudName?: string | undefined;
};
/**
 * Specifies the expression field by which to sort the results. Prepend values with a '-' to reverse the order.
 */
export declare const SortBy: {
    readonly ViewEndedAt: "view_ended_at";
    readonly VideoDuration: "video_duration";
    readonly ViewWatchTime: "view_watch_time";
    readonly MinusViewEndedAt: "-view_ended_at";
    readonly MinusVideoDuration: "-video_duration";
    readonly MinusViewWatchTime: "-view_watch_time";
};
/**
 * Specifies the expression field by which to sort the results. Prepend values with a '-' to reverse the order.
 */
export type SortBy = ClosedEnum<typeof SortBy>;
export type GetVideoViewsRequest = {
    /**
     * A set of conditions used to limit the results to rows that match those conditions. For example: `?expression=video_public_id=skate`
     */
    expression?: string | undefined;
    /**
     * Specifies the number of items to include in the response.
     */
    maxResults?: number | undefined;
    /**
     * Specifies the expression field by which to sort the results. Prepend values with a '-' to reverse the order.
     */
    sortBy?: SortBy | undefined;
    /**
     * The value to be used to obtain the next batch of results.
     */
    nextCursor?: string | undefined;
};
export type Data = {
    /**
     * The full public ID of the video
     */
    videoPublicId?: string | undefined;
    /**
     * The duration in seconds of the video
     */
    videoDuration?: number | null | undefined;
    /**
     * The transformation applied to the video
     */
    videoTransformation?: string | null | undefined;
    /**
     * The file extension of the video
     */
    videoExtension?: string | null | undefined;
    /**
     * The application used to view the video
     */
    viewerApplicationName?: string | null | undefined;
    /**
     * The 2-digit ISO country code of the viewer location
     */
    viewerLocationCountryCode?: string | null | undefined;
    /**
     * The full identifier for the viewer's operating system
     */
    viewerOsIdentifier?: string | null | undefined;
    /**
     * The length of time the video was viewed
     */
    viewWatchTime?: number | null | undefined;
    /**
     * The date when the video view ended
     */
    viewEndedAt?: Date | undefined;
};
/**
 * List of video views retrieved
 */
export type GetVideoViewsResponse = {
    /**
     * Unique identifier for the request
     */
    requestId?: string | undefined;
    /**
     * Cursor value for pagination
     */
    nextCursor?: string | undefined;
    data?: Array<Data> | undefined;
};
/** @internal */
export declare const GetVideoViewsGlobals$inboundSchema: z.ZodType<GetVideoViewsGlobals, z.ZodTypeDef, unknown>;
/** @internal */
export type GetVideoViewsGlobals$Outbound = {
    cloud_name?: string | undefined;
};
/** @internal */
export declare const GetVideoViewsGlobals$outboundSchema: z.ZodType<GetVideoViewsGlobals$Outbound, z.ZodTypeDef, GetVideoViewsGlobals>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetVideoViewsGlobals$ {
    /** @deprecated use `GetVideoViewsGlobals$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetVideoViewsGlobals, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetVideoViewsGlobals$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetVideoViewsGlobals$Outbound, z.ZodTypeDef, GetVideoViewsGlobals>;
    /** @deprecated use `GetVideoViewsGlobals$Outbound` instead. */
    type Outbound = GetVideoViewsGlobals$Outbound;
}
export declare function getVideoViewsGlobalsToJSON(getVideoViewsGlobals: GetVideoViewsGlobals): string;
export declare function getVideoViewsGlobalsFromJSON(jsonString: string): SafeParseResult<GetVideoViewsGlobals, SDKValidationError>;
/** @internal */
export declare const SortBy$inboundSchema: z.ZodNativeEnum<typeof SortBy>;
/** @internal */
export declare const SortBy$outboundSchema: z.ZodNativeEnum<typeof SortBy>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SortBy$ {
    /** @deprecated use `SortBy$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly ViewEndedAt: "view_ended_at";
        readonly VideoDuration: "video_duration";
        readonly ViewWatchTime: "view_watch_time";
        readonly MinusViewEndedAt: "-view_ended_at";
        readonly MinusVideoDuration: "-video_duration";
        readonly MinusViewWatchTime: "-view_watch_time";
    }>;
    /** @deprecated use `SortBy$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly ViewEndedAt: "view_ended_at";
        readonly VideoDuration: "video_duration";
        readonly ViewWatchTime: "view_watch_time";
        readonly MinusViewEndedAt: "-view_ended_at";
        readonly MinusVideoDuration: "-video_duration";
        readonly MinusViewWatchTime: "-view_watch_time";
    }>;
}
/** @internal */
export declare const GetVideoViewsRequest$inboundSchema: z.ZodType<GetVideoViewsRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type GetVideoViewsRequest$Outbound = {
    expression?: string | undefined;
    max_results: number;
    sort_by: string;
    next_cursor?: string | undefined;
};
/** @internal */
export declare const GetVideoViewsRequest$outboundSchema: z.ZodType<GetVideoViewsRequest$Outbound, z.ZodTypeDef, GetVideoViewsRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetVideoViewsRequest$ {
    /** @deprecated use `GetVideoViewsRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetVideoViewsRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetVideoViewsRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetVideoViewsRequest$Outbound, z.ZodTypeDef, GetVideoViewsRequest>;
    /** @deprecated use `GetVideoViewsRequest$Outbound` instead. */
    type Outbound = GetVideoViewsRequest$Outbound;
}
export declare function getVideoViewsRequestToJSON(getVideoViewsRequest: GetVideoViewsRequest): string;
export declare function getVideoViewsRequestFromJSON(jsonString: string): SafeParseResult<GetVideoViewsRequest, SDKValidationError>;
/** @internal */
export declare const Data$inboundSchema: z.ZodType<Data, z.ZodTypeDef, unknown>;
/** @internal */
export type Data$Outbound = {
    video_public_id?: string | undefined;
    video_duration?: number | null | undefined;
    video_transformation?: string | null | undefined;
    video_extension?: string | null | undefined;
    viewer_application_name?: string | null | undefined;
    viewer_location_country_code?: string | null | undefined;
    viewer_os_identifier?: string | null | undefined;
    view_watch_time?: number | null | undefined;
    view_ended_at?: string | undefined;
};
/** @internal */
export declare const Data$outboundSchema: z.ZodType<Data$Outbound, z.ZodTypeDef, Data>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Data$ {
    /** @deprecated use `Data$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Data, z.ZodTypeDef, unknown>;
    /** @deprecated use `Data$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Data$Outbound, z.ZodTypeDef, Data>;
    /** @deprecated use `Data$Outbound` instead. */
    type Outbound = Data$Outbound;
}
export declare function dataToJSON(data: Data): string;
export declare function dataFromJSON(jsonString: string): SafeParseResult<Data, SDKValidationError>;
/** @internal */
export declare const GetVideoViewsResponse$inboundSchema: z.ZodType<GetVideoViewsResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type GetVideoViewsResponse$Outbound = {
    request_id?: string | undefined;
    next_cursor?: string | undefined;
    data?: Array<Data$Outbound> | undefined;
};
/** @internal */
export declare const GetVideoViewsResponse$outboundSchema: z.ZodType<GetVideoViewsResponse$Outbound, z.ZodTypeDef, GetVideoViewsResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetVideoViewsResponse$ {
    /** @deprecated use `GetVideoViewsResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetVideoViewsResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetVideoViewsResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetVideoViewsResponse$Outbound, z.ZodTypeDef, GetVideoViewsResponse>;
    /** @deprecated use `GetVideoViewsResponse$Outbound` instead. */
    type Outbound = GetVideoViewsResponse$Outbound;
}
export declare function getVideoViewsResponseToJSON(getVideoViewsResponse: GetVideoViewsResponse): string;
export declare function getVideoViewsResponseFromJSON(jsonString: string): SafeParseResult<GetVideoViewsResponse, SDKValidationError>;
//# sourceMappingURL=getvideoviews.d.ts.map