import { IRealmSyncServerConfiguration } from "realm-sync-server";
import { IService } from "../Service";
import { StatsSink } from "../stats";
import { Logger } from "../shared/Logger";
export interface SyncServiceConfig {
    dataPath?: string;
    publicKeyPath?: string;
    listenAddress?: string;
    listenPort?: number;
    label?: string;
    logLevel?: "all" | "trace" | "debug" | "detail" | "info" | "warn" | "error" | "fatal" | "off";
    featureToken?: string;
    enableDownloadLogCompaction?: boolean;
    maxDownloadSize?: number;
    historyTtl?: number;
    historyCompactionInterval?: number;
    historyCompactionIgnoreClients?: boolean;
    enableLogCompaction?: boolean;
    enableRealmStateSizeReporting?: boolean;
    maxFilesInCache?: number;
    maxUploadBacklog?: number;
    enableDownloadBootstrapCache?: boolean;
    disablePartialSyncCompleter?: boolean;
    numAuxPsyncThreads?: number;
    disableStateRealms?: boolean;
}
export declare function createSyncServerConfig({ syncServiceConfig, dataPath, statsEndpoint, realmsEncryptionKey, logger, }: {
    syncServiceConfig: SyncServiceConfig;
    dataPath: string;
    logger: Logger;
    statsEndpoint?: string;
    realmsEncryptionKey?: ArrayBuffer | ArrayBufferView;
}): IRealmSyncServerConfiguration;
export declare class SyncService implements IService {
    private readonly config;
    readonly tags: string[];
    stats: StatsSink;
    private logger;
    private syncServer;
    private statsdSocket;
    private statsdToStatsSink;
    private statsdToMetricsRealm;
    constructor(config?: SyncServiceConfig);
    private setLogger;
    private start;
    private stop;
    private address;
}
