import { ServiceOptions, BaseService } from '../../../storage/service/base.js';
import { tl } from '../../../tl/index.js';
import { IPeersRepository } from '../repository/peers.js';
import { RefMessagesService } from './ref-messages.js';
export interface PeersServiceOptions {
    cacheSize?: number;
    updatesWriteInterval?: number;
}
export declare class PeersService extends BaseService {
    private options;
    private _peers;
    private _refs;
    private _cache;
    private _pendingWrites;
    private _pendingWritesTimer;
    constructor(options: PeersServiceOptions, _peers: IPeersRepository, _refs: RefMessagesService, common: ServiceOptions);
    close(): Promise<void>;
    private _writePendingLater;
    updatePeersFrom(obj: tl.TlObject | tl.TlObject[]): Promise<boolean>;
    store(peer: tl.TypeUser | tl.TypeChat): Promise<void>;
    private _writePending;
    private _returnCaching;
    getById(id: number, allowRefs?: boolean): Promise<tl.TypeInputPeer | null>;
    getMinAccessHash(id: number): Promise<tl.Long | null>;
    getByPhone(phone: string): Promise<tl.TypeInputPeer | null>;
    getByUsername(username: string): Promise<tl.TypeInputPeer | null>;
    getCompleteById(id: number, allowMin?: boolean): Promise<tl.TypeUser | tl.TypeChat | null>;
}
