import { RpcCallOptions } from '../../network/network-manager.js';
import { tl } from '../../tl/index.js';
export interface RpcTimerSpec {
    kind: 'rpc';
    key: string;
    interval: number;
    request: tl.RpcMethod;
    options?: Omit<RpcCallOptions, 'abortSignal' | 'manager'>;
    startNow?: boolean;
}
export declare class TimersManager {
    private readonly _executeRpc;
    private _timers;
    private _errorHandler?;
    constructor(_executeRpc: (spec: RpcTimerSpec, abortSignal: AbortSignal) => Promise<void>);
    exists(key: string): Promise<boolean>;
    upsert(spec: RpcTimerSpec): Promise<void>;
    cancel(key: string): Promise<void>;
    upsertOwned(ownerId: string, spec: RpcTimerSpec): void;
    clearOwner(ownerId: string): void;
    onError(handler: (err: unknown) => void): void;
    destroy(): void;
    private _cancel;
}
