import type { EmptyObject } from '../../../../framework-types/BaseTypes';
import type { ArrayAtom } from '../../core/state/ArrayStateAtom';
import type { PrimitiveAtom } from '../../core/state/PrimitiveAtom';
import type { StateAtom } from '../../core/state/Types';
import type { Transient } from '../../core/utils/StateUtils';
import type { AdExtension } from './AdExtension';
import type { AdIconAtom } from './AdIconAtom';
import type { AdPosition } from './AdPosition';
import type { AdQuartile } from './AdQuartile';
import { BaseAdState } from './BaseAdState';
import type { ClickThroughAtom } from './ClickThroughAtom';
import type { CompanionAdAtom } from './CompanionAdAtom';
import type { AdvertisingBaseContext } from './Types';
type AdState = {
    id: string;
    externalAdId: string;
    position: AdPosition;
    skipDelay: PrimitiveAtom<number>;
    quartile: PrimitiveAtom<AdQuartile | undefined>;
    state: PrimitiveAtom<BaseAdState>;
    error: PrimitiveAtom<Error | undefined>;
    sourcePreloadOffset: PrimitiveAtom<number>;
    isLinear: PrimitiveAtom<boolean>;
    canPause: PrimitiveAtom<boolean>;
    paused: PrimitiveAtom<boolean>;
    play: Transient<void>;
    pause: Transient<void>;
    canSkip: PrimitiveAtom<boolean>;
    skip: Transient<void>;
    canSetVolume: PrimitiveAtom<boolean>;
    volume: PrimitiveAtom<number>;
    canExpand: PrimitiveAtom<boolean>;
    expanded: PrimitiveAtom<boolean>;
    hasTimeline: PrimitiveAtom<boolean>;
    duration: PrimitiveAtom<number>;
    currentTime: PrimitiveAtom<number>;
    clickThrough: ClickThroughAtom | undefined;
    companions: ArrayAtom<CompanionAdAtom>;
    icons: ArrayAtom<AdIconAtom>;
    extensions: ArrayAtom<AdExtension>;
};
export type BaseAdAtom = StateAtom<AdState, EmptyObject>;
export declare function createBaseAdAtom(context: AdvertisingBaseContext, id: string, externalAdId: string, position: AdPosition, adSkipDelay: number, preloadOffset: number, clickThrough: ClickThroughAtom | undefined, initialCompanions: CompanionAdAtom[], initialIcons: AdIconAtom[], initialExtensions: AdExtension[]): BaseAdAtom;
export {};
