import { ImplDecorator } from '@eggjs/tegg';
import { RegistryType } from '../../../common/enum/Registry';
import { Registry } from '../../../core/entity/Registry';
import { EggHttpClient, EggLogger } from 'egg';
export declare const CHANGE_STREAM_ATTRIBUTE = "CHANGE_STREAM_ATTRIBUTE";
export type ChangesStreamChange = {
    seq: string;
    fullname: string;
};
export declare abstract class AbstractChangeStream {
    protected logger: EggLogger;
    protected httpclient: EggHttpClient;
    abstract getInitialSince(registry: Registry): Promise<string>;
    abstract fetchChanges(registry: Registry, since: string): AsyncGenerator<ChangesStreamChange>;
    getChangesStreamUrl(registry: Registry, since: string, limit?: number): string;
}
export declare const RegistryChangesStream: ImplDecorator<AbstractChangeStream, typeof RegistryType>;
