@restnfeel/agentc-starter-kit
Version:
한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템
54 lines • 1.98 kB
TypeScript
import React from "react";
import { ExtendedDeviceInfo } from "./real-time-device-monitor";
export interface AdaptiveChatRouterConfig {
strategy: "device-type" | "screen-size" | "hybrid" | "user-preference";
mobileMaxWidth: number;
tabletMaxWidth: number;
allowUserOverride: boolean;
persistUserPreference: boolean;
enableTransitions: boolean;
enableLazyLoading: boolean;
preloadComponents: boolean;
enableMemoryManagement: boolean;
enableDebugMode: boolean;
enablePerformanceLogging: boolean;
}
export declare enum ChatInterface {
DESKTOP = "desktop",
MOBILE = "mobile",
TABLET = "tablet",
AUTO = "auto"
}
export interface ChatState {
isOpen: boolean;
currentInterface: ChatInterface;
requestedInterface?: ChatInterface;
isTransitioning: boolean;
sessionId: string;
lastInteraction: number;
}
interface AdaptiveChatRouterContextType {
chatState: ChatState;
deviceInfo: ExtendedDeviceInfo;
config: AdaptiveChatRouterConfig;
openChat: (preferredInterface?: ChatInterface) => void;
closeChat: () => void;
switchInterface: (chatInterface: ChatInterface) => void;
isInterfaceSupported: (chatInterface: ChatInterface) => boolean;
}
export declare const useAdaptiveChatRouter: () => AdaptiveChatRouterContextType;
interface AdaptiveChatRouterProps {
children?: React.ReactNode;
config?: Partial<AdaptiveChatRouterConfig>;
onInterfaceChange?: (oldInterface: ChatInterface, newInterface: ChatInterface) => void;
onChatStateChange?: (chatState: ChatState) => void;
}
export declare const AdaptiveChatRouter: React.FC<AdaptiveChatRouterProps>;
interface AdaptiveFloatingChatButtonProps {
onToggle?: (isOpen: boolean) => void;
className?: string;
style?: React.CSSProperties;
}
export declare const AdaptiveFloatingChatButton: React.FC<AdaptiveFloatingChatButtonProps>;
export default AdaptiveChatRouter;
//# sourceMappingURL=adaptive-chat-router.d.ts.map