import { Series, Rate, bounds } from "@synnaxlabs/x";
import { z } from "zod";
import { type Factory } from './factory';
import { AbstractSource, type SeriesSourceSpec, type NumberSource, type SeriesSource, type Spec, type Telem, type StringSourceSpec, type NumberSourceSpec } from './telem';
export declare class StaticFactory implements Factory {
    type: string;
    create(spec: Spec): Telem | null;
}
export declare const fixedSeriesPropsZ: z.ZodObject<{
    data: z.ZodArray<z.ZodUnion<[z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>, z.ZodType<Uint16Array, z.ZodTypeDef, Uint16Array>, z.ZodType<Uint32Array, z.ZodTypeDef, Uint32Array>, z.ZodType<BigUint64Array, z.ZodTypeDef, BigUint64Array>, z.ZodType<Float32Array, z.ZodTypeDef, Float32Array>, z.ZodType<Float64Array, z.ZodTypeDef, Float64Array>, z.ZodType<Int8Array, z.ZodTypeDef, Int8Array>, z.ZodType<Int16Array, z.ZodTypeDef, Int16Array>, z.ZodType<Int32Array, z.ZodTypeDef, Int32Array>, z.ZodType<BigInt64Array, z.ZodTypeDef, BigInt64Array>]>, "many">;
    offsets: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>>;
}, "strip", z.ZodTypeAny, {
    data: (Uint8Array | Uint16Array | Uint32Array | BigUint64Array | Float32Array | Float64Array | Int8Array | Int16Array | Int32Array | BigInt64Array)[];
    offsets: number[];
}, {
    data: (Uint8Array | Uint16Array | Uint32Array | BigUint64Array | Float32Array | Float64Array | Int8Array | Int16Array | Int32Array | BigInt64Array)[];
    offsets?: number[] | undefined;
}>;
export type FixedArrayProps = z.input<typeof fixedSeriesPropsZ>;
export declare const iterativeSeriesPropsZ: z.ZodObject<{
    data: z.ZodArray<z.ZodUnion<[z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>, z.ZodType<Uint16Array, z.ZodTypeDef, Uint16Array>, z.ZodType<Uint32Array, z.ZodTypeDef, Uint32Array>, z.ZodType<BigUint64Array, z.ZodTypeDef, BigUint64Array>, z.ZodType<Float32Array, z.ZodTypeDef, Float32Array>, z.ZodType<Float64Array, z.ZodTypeDef, Float64Array>, z.ZodType<Int8Array, z.ZodTypeDef, Int8Array>, z.ZodType<Int16Array, z.ZodTypeDef, Int16Array>, z.ZodType<Int32Array, z.ZodTypeDef, Int32Array>, z.ZodType<BigInt64Array, z.ZodTypeDef, BigInt64Array>]>, "many">;
    offsets: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>>;
    rate: z.ZodUnion<[z.ZodEffects<z.ZodNumber, Rate, number>, z.ZodEffects<z.ZodType<Number, z.ZodTypeDef, Number>, Rate, Number>, z.ZodType<Rate, z.ZodTypeDef, Rate>]>;
    yOffset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    scroll: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    startPosition: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    scrollBounds: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
}, "strip", z.ZodTypeAny, {
    data: (Uint8Array | Uint16Array | Uint32Array | BigUint64Array | Float32Array | Float64Array | Int8Array | Int16Array | Int32Array | BigInt64Array)[];
    scroll: number;
    offsets: number[];
    rate: Rate;
    yOffset: number;
    startPosition: number;
    scrollBounds: boolean;
}, {
    data: (Uint8Array | Uint16Array | Uint32Array | BigUint64Array | Float32Array | Float64Array | Int8Array | Int16Array | Int32Array | BigInt64Array)[];
    rate: (number | Number | Rate) & (number | Number | Rate | undefined);
    offsets?: number[] | undefined;
    yOffset?: number | undefined;
    scroll?: number | undefined;
    startPosition?: number | undefined;
    scrollBounds?: boolean | undefined;
}>;
export type IterativeArrayProps = z.input<typeof iterativeSeriesPropsZ>;
export declare class IterativeSeries extends AbstractSource<typeof iterativeSeriesPropsZ> implements SeriesSource {
    static readonly TYPE = "iterative-series";
    schema: z.ZodObject<{
        data: z.ZodArray<z.ZodUnion<[z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>, z.ZodType<Uint16Array, z.ZodTypeDef, Uint16Array>, z.ZodType<Uint32Array, z.ZodTypeDef, Uint32Array>, z.ZodType<BigUint64Array, z.ZodTypeDef, BigUint64Array>, z.ZodType<Float32Array, z.ZodTypeDef, Float32Array>, z.ZodType<Float64Array, z.ZodTypeDef, Float64Array>, z.ZodType<Int8Array, z.ZodTypeDef, Int8Array>, z.ZodType<Int16Array, z.ZodTypeDef, Int16Array>, z.ZodType<Int32Array, z.ZodTypeDef, Int32Array>, z.ZodType<BigInt64Array, z.ZodTypeDef, BigInt64Array>]>, "many">;
        offsets: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>>;
        rate: z.ZodUnion<[z.ZodEffects<z.ZodNumber, Rate, number>, z.ZodEffects<z.ZodType<Number, z.ZodTypeDef, Number>, Rate, Number>, z.ZodType<Rate, z.ZodTypeDef, Rate>]>;
        yOffset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        scroll: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        startPosition: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        scrollBounds: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    }, "strip", z.ZodTypeAny, {
        data: (Uint8Array | Uint16Array | Uint32Array | BigUint64Array | Float32Array | Float64Array | Int8Array | Int16Array | Int32Array | BigInt64Array)[];
        scroll: number;
        offsets: number[];
        rate: Rate;
        yOffset: number;
        startPosition: number;
        scrollBounds: boolean;
    }, {
        data: (Uint8Array | Uint16Array | Uint32Array | BigUint64Array | Float32Array | Float64Array | Int8Array | Int16Array | Int32Array | BigInt64Array)[];
        rate: (number | Number | Rate) & (number | Number | Rate | undefined);
        offsets?: number[] | undefined;
        yOffset?: number | undefined;
        scroll?: number | undefined;
        startPosition?: number | undefined;
        scrollBounds?: boolean | undefined;
    }>;
    position: number;
    interval?: number;
    data: Series[];
    constructor(props: unknown);
    value(): Promise<[bounds.Bounds, Series[]]>;
    start(rate: Rate): void;
    cleanup(): Promise<void>;
}
export declare const fixedNumberPropsZ: z.ZodNumber;
export type FixedNumberProps = z.infer<typeof fixedNumberPropsZ>;
export declare class FixedNumber extends AbstractSource<typeof fixedNumberPropsZ> implements NumberSource {
    static readonly TYPE = "static-numeric";
    schema: z.ZodNumber;
    value(): Promise<number>;
}
export declare const fixedStringPropsZ: z.ZodString;
export type FixedStringProps = z.infer<typeof fixedStringPropsZ>;
export declare class FixedString extends AbstractSource<typeof fixedStringPropsZ> {
    static readonly TYPE = "static-string";
    schema: z.ZodString;
    value(): Promise<string>;
}
export declare const fixedArray: (props: FixedArrayProps) => SeriesSourceSpec;
export declare const iterativeArray: (props: IterativeArrayProps) => SeriesSourceSpec;
export declare const fixedNumber: (value: number) => NumberSourceSpec;
export declare const fixedString: (value: string) => StringSourceSpec;
