import React from 'react';
import type { SignalDescriptorJson, SignalFormatJson, ListIncomingSignalsResponseJson, Transmitter_ModeJson } from '../api';
export interface SignalReference {
    node: string;
    nodeLabel: string;
    nodeDescription?: string;
    nodeLogoId?: string;
    nodeIcon?: React.ReactNode;
    transmitter: string;
    transmitterDescription?: string;
    transmitterMode?: Transmitter_ModeJson;
    signal: SignalDescriptorJson;
}
export type PrimitiveType = 'boolean' | 'string' | 'timestamp' | 'float32' | 'float64' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32';
export declare function isPrimitiveSchema(schema: Record<string, unknown>): boolean;
export declare function isEmptySchema(schema: Record<string, unknown>): boolean;
export declare function isArraySchema(schema: Record<string, unknown>): boolean;
export declare function getSchemaDescription(schema: Record<string, unknown>): string;
export declare function getFormatLabel(format: SignalFormatJson): string;
export declare class SignalSearch {
    private fuse;
    private data;
    constructor(data: SignalReference[]);
    search(query: string): SignalReference[];
    allSignals(): Readonly<SignalReference[]>;
}
export declare function createSignalFilter(search: SignalSearch): (options: SignalReference[], inputValue: string) => SignalReference[];
export declare function flattenSignals(data: ListIncomingSignalsResponseJson): SignalReference[];
export declare function signalReferenceKey(ref: SignalReference): string;
export declare function SignalGroupHeader(props: {
    group: string;
    references: Readonly<SignalReference[]>;
    className?: string;
}): import("react/jsx-runtime").JSX.Element | null;
export declare function SignalOption(props: {
    reference: SignalReference;
    className?: string;
}): import("react/jsx-runtime").JSX.Element;
export declare function FormatChip(props: {
    format: SignalFormatJson;
    size?: 'small' | 'medium';
    onDelete?: () => void;
    onClick?: () => void;
    className?: string;
}): import("react/jsx-runtime").JSX.Element;
export declare function FormatViewer(props: {
    formats: SignalFormatJson[];
    maxVisible?: number;
    size?: 'small' | 'medium';
    onViewSchema?: (schema: Record<string, unknown>) => void;
    className?: string;
}): import("react/jsx-runtime").JSX.Element;
export interface SignalSelectorProps {
    currentReference: SignalReference | undefined;
    inputValue: string;
    availableReferences: Readonly<SignalReference[]>;
    filterOptions: (options: SignalReference[], inputValue: string) => SignalReference[];
    disabled?: boolean;
    hasError: boolean;
    errorMessage?: string;
    placeholder?: string;
    className?: string;
    theme?: 'light' | 'dark' | 'auto';
    onInputChange: (value: string) => void;
    onReferenceChange: (value: string | null) => void;
}
export declare function SignalSelector({ currentReference, inputValue, availableReferences, filterOptions, disabled, hasError, errorMessage, placeholder, className, theme, onInputChange, onReferenceChange }: SignalSelectorProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=index.d.ts.map