import type { MediaType } from '../core/Constants';
import type { MediaTrackAtom } from '../stream-data-structure/track/TrackAtom';
import type { ContextWithState } from '../Types';
import type { StartupQuality } from './Types';
import type { QualityFunction, WishConfig } from './WishConfigAtom';
type AbrAlgorithm = 'wish' | 'default';
type AdaptationSuggestion = {
    [key in MediaType]?: MediaTrackAtom;
};
type AdaptationConfig = WishConfig;
export interface AdaptationState {
        abr: AbrAlgorithm;
        suggestion: AdaptationSuggestion;
        config: AdaptationConfig;
        startupQuality: StartupQuality | undefined;
}
export declare function getDefaultState(baseState?: Partial<AdaptationState>): AdaptationState;
export type AdaptationStateAtom = ReturnType<typeof createAdaptationStateAtom>;
export declare function createAdaptationStateAtom(context: ContextWithState, baseState?: Partial<AdaptationState>): import("../core/state/Types").StateAtom<AdaptationState, {
    setAbr: (state: AdaptationState, abr: AbrAlgorithm) => boolean;
    setSuggestion: (state: AdaptationState, suggestion: AdaptationSuggestion) => boolean;
    setXi: (state: AdaptationState, xi: number) => boolean;
    setDelta: (state: AdaptationState, delta: number) => boolean;
    setQualityFunction: (state: AdaptationState, qualityFunction: QualityFunction) => boolean;
    setStartupQuality: (state: AdaptationState, startupQuality: StartupQuality | undefined) => boolean;
}>;
export {};
