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