import { type VideoPrepIntent } from './videoPrep';
export type VideoSlotPolicyIntent = Extract<VideoPrepIntent, {
    readonly tag: 'inline-content';
} | {
    readonly tag: 'background-video';
}>;
export type VideoSlotPolicy = Readonly<{
    intent: VideoSlotPolicyIntent;
    maxDurationSeconds: number;
}>;
export type VideoSlotAssetLike = Readonly<{
    mimeType?: string | null;
    durationSeconds?: number | null;
}>;
export type VideoSlotFieldInput = Readonly<{
    fieldPath: string;
    mediaKinds?: readonly string[] | null;
}>;
export type VideoSlotAssetPolicyResult = Readonly<{
    tag: 'allowed';
}> | Readonly<{
    tag: 'not-video';
}> | Readonly<{
    tag: 'unconstrained';
}> | Readonly<{
    tag: 'duration-unknown';
    maxSeconds: number;
}> | Readonly<{
    tag: 'duration-too-long';
    actualSeconds: number;
    maxSeconds: number;
}>;
export declare function deriveVideoSlotPolicy(intent: VideoPrepIntent | undefined): VideoSlotPolicy | undefined;
export declare function evaluateVideoSlotAssetPolicy(asset: VideoSlotAssetLike, policy: VideoSlotPolicy | undefined): VideoSlotAssetPolicyResult;
export declare function resolveVideoSelectionIntentForMediaField(input: VideoSlotFieldInput): VideoSlotPolicyIntent | undefined;
export declare function isVideoSlotAssetSelectable(result: VideoSlotAssetPolicyResult): boolean;
export declare function videoSlotAssetPolicyMessage(result: VideoSlotAssetPolicyResult): string | undefined;
