import { Instrumentation } from '@synnaxlabs/alamos';
import { Synnax } from '@synnaxlabs/client';
import { z } from 'zod';
import { aether } from '../../aether/aether';
import { telem } from '.';
import { CompoundTelemFactory } from './factory';
import { client } from '../client';
export type ProviderState = z.input<typeof providerStateZ>;
export declare const providerStateZ: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
interface InternalState {
    instrumentation: Instrumentation;
}
export declare class BaseProvider extends aether.Composite<typeof providerStateZ, InternalState> implements telem.Provider {
    client: client.Proxy;
    factory: CompoundTelemFactory;
    static readonly TYPE = "TelemProvider";
    static readonly stateZ: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
    schema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
    prevClient: Synnax | null;
    create<T>(spec: telem.Spec): T;
    get clusterKey(): string;
    registerFactory(f: telem.Factory): void;
    equals(other: telem.Provider): boolean;
    afterUpdate(): Promise<void>;
}
export declare const REGISTRY: aether.ComponentRegistry;
export {};
//# sourceMappingURL=provider.d.ts.map