import { MVideoAccountLightBlacklistAllFiles, MVideoImmutable, MVideoThumbnail } from '../../../types/models';
import { APObject } from '../../../../shared/models';
import { SyncParam } from './shared';
declare type GetVideoResult<T> = Promise<{
    video: T;
    created: boolean;
    autoBlacklisted?: boolean;
}>;
declare type GetVideoParamAll = {
    videoObject: APObject;
    syncParam?: SyncParam;
    fetchType?: 'all';
    allowRefresh?: boolean;
};
declare type GetVideoParamImmutable = {
    videoObject: APObject;
    syncParam?: SyncParam;
    fetchType: 'only-immutable-attributes';
    allowRefresh: false;
};
declare type GetVideoParamOther = {
    videoObject: APObject;
    syncParam?: SyncParam;
    fetchType?: 'all' | 'only-video';
    allowRefresh?: boolean;
};
declare function getOrCreateAPVideo(options: GetVideoParamAll): GetVideoResult<MVideoAccountLightBlacklistAllFiles>;
declare function getOrCreateAPVideo(options: GetVideoParamImmutable): GetVideoResult<MVideoImmutable>;
declare function getOrCreateAPVideo(options: GetVideoParamOther): GetVideoResult<MVideoAccountLightBlacklistAllFiles | MVideoThumbnail>;
export { getOrCreateAPVideo };
//# sourceMappingURL=get.d.ts.map