import { FeedCutOffHistory } from '../feed-cut-off-history/feed-cut-off-history';
import { ISourceFeedAttr } from '../../interfaces/price-source-feed-attr.interface';
import { SourceFeedRepository } from './source-feed.repository';
import { SourceFeedName } from '../../enum/feed.enum';
import { IPriceData } from '../../interfaces/price-data.interface';
import { FeedHistory } from '../feed-history/feed-history';
import { Feed } from '../feed/feed';
import { IFeedAttr } from '../../interfaces/price-feed-attr.interface';
import { FeedHistoryRepository } from '../feed-history/feed-history.repository';
import { LoginUser } from '@tomei/sso';
import { PriceSourceBase } from '../../base/PriceSourceBase';
import { ActivityHistoryRepository } from '@tomei/activity-history';
export declare class SourceFeed extends Feed implements ISourceFeedAttr {
    ObjectId: string;
    ObjectName: string;
    ObjectType: string;
    TableName: string;
    FeedName: SourceFeedName;
    Status: string;
    IsSourceFeedAvailableYN: string;
    IsFeedCutOffYN: string;
    CurrentCutOffHistoryId: string;
    AutomaticCutOffVariance: number;
    AutomaticCutOffMinutes: number;
    protected static _SourceRepo: SourceFeedRepository;
    protected static _FeedHistoryRepo: FeedHistoryRepository;
    protected static _ActivityRepo: ActivityHistoryRepository;
    protected constructor(sourcefeedAttr?: ISourceFeedAttr, feedAttr?: IFeedAttr);
    static init(dbTransaction: any, FeedName?: string): Promise<SourceFeed>;
    save(dbTransaction: any): Promise<void>;
    getCutOffDetails(dbTransaction: any): Promise<FeedCutOffHistory>;
    recordFeedPrice(priceData: IPriceData, dbTransaction: any): Promise<FeedHistory>;
    private getPreviousSourceFeedConfig;
    circuitBreakerCheck(priceData: IPriceData, priceSource: PriceSourceBase<SourceFeed>, dbTransaction?: any): Promise<boolean>;
    cutOff(priceSource: PriceSourceBase<SourceFeed>, dbTransaction: any, activatedById?: string): Promise<void>;
    deactivateCutOff(priceSource: PriceSourceBase<SourceFeed>, dbTransaction: any, deactivatedById: string): Promise<void>;
    updateCircuitBreakerConfig(AutomaticCutOffVariance: number, AutomaticCutOffMinutes: number, dbTransaction: any, loginUser: LoginUser): Promise<void>;
    static getAllSourceFeed(dbTransaction: any): Promise<SourceFeed[]>;
}
