import { RefObject, ButtonHTMLAttributes } from 'react'; import { Theme } from '../../../models/Theme'; import { FullscreenButtonSize } from '../fullscreen-button/fullscreen-button.model'; /** * Props interface for the FullscreenControl component * Combines fullscreen functionality with button presentation */ export interface FullscreenControlProps extends Omit, 'onClick' | 'onKeyDown' | 'onError'> { /** * Reference to the element that should be made fullscreen */ targetRef: RefObject; /** * Theme configuration for styling */ theme: Theme; /** * Callback function triggered when entering fullscreen mode */ onEnterFullscreen?: () => void; /** * Callback function triggered when exiting fullscreen mode */ onExitFullscreen?: () => void; /** * Callback function triggered when an error occurs * @param error - Error message describing what went wrong */ onError?: (error: string) => void; /** * Size variant of the button * @default 'medium' */ size?: FullscreenButtonSize; /** * Whether the button is disabled * @default false */ disabled?: boolean; /** * Custom CSS class name */ className?: string; /** * Custom aria-label for accessibility * If not provided, defaults to appropriate fullscreen action */ ariaLabel?: string; /** * Custom title attribute for tooltip * If not provided, defaults to appropriate fullscreen action with keyboard hint */ title?: string; /** * Test ID for testing purposes * @default 'fullscreen-control' */ testId?: string; } //# sourceMappingURL=fullscreen-control.model.d.ts.map