import { ApiTokenProvider } from '@zocks-communications/client-sdk-js';
import { ComponentType } from 'react';
import { CandidateInfo } from './connectionHelper/checks/trickle';
import { StyledComponent } from '../common';
import { CheckInfo } from './connectionHelper/checks/Checker';
export type CandidateTableProps = {
    candidates: Array<CandidateInfo>;
};
export type MediaDeviceTableProps = {
    devices: Array<MediaDeviceInfo>;
};
export interface CheckResultComponents {
    MediaDeviceTable?: ComponentType<MediaDeviceTableProps>;
    CandidateTable?: ComponentType<CandidateTableProps>;
}
export interface CheckResultProps {
    checkInfo: CheckInfo;
    components?: CheckResultComponents;
}
export interface StartTestButtonProps extends StyledComponent {
    startTest: () => void;
    testsInProgress: boolean;
}
export interface ExportResultButtonProps extends StyledComponent {
    exportResult: () => Promise<void>;
    exportInProgress: boolean;
    exportSuccess: boolean | null;
}
export interface ConnectionTesterComponents {
    MediaDeviceTable?: ComponentType<MediaDeviceTableProps>;
    CandidateTable?: ComponentType<CandidateTableProps>;
    ExportResultButton?: ComponentType<ExportResultButtonProps>;
    StartTestButton?: ComponentType<StartTestButtonProps>;
}
export interface ConnectionTesterParams extends StyledComponent {
    apiBaseUrl?: string;
    apiTokenProvider?: ApiTokenProvider[];
    apiTokenKeyName?: string;
    roomId?: string;
    roomName?: string;
    components?: ConnectionTesterComponents;
}
