import { Theme } from '../../../models/Theme';
import React, { ReactNode } from 'react';
/**
 * Common properties shared by multiple interfaces.
 */
type common = {
    classString?: string;
    color?: string;
    dir?: string;
    fontSize?: string;
    $padding?: boolean;
    theme?: Theme;
};
/**
 * Interface for the Title component.
 */
export interface Title extends common {
    active?: boolean;
    title?: string | ReactNode;
    url?: string;
}
/**
 * Interface for the Content component.
 */
export interface Content extends common {
    content?: string | ReactNode;
    padding?: boolean;
}
/**
 * Type for the ExpandButtonModel.
 */
export type ExpandButtonModel = {
    expanded?: boolean;
    onExpand?: (ev: React.PointerEvent | React.KeyboardEvent) => void;
    textOverlay?: boolean;
} & Pick<common, 'theme'>;
/**
 * Type for the ShowHideTextButtonModel.
 */
export type ShowHideTextButtonModel = {
    onToggle: (ev: React.PointerEvent | React.KeyboardEvent) => void;
    show?: boolean;
    textOverlay?: boolean;
} & Pick<common, 'theme'>;
/**
 * Type for the DetailsTextMemoModel.
 */
export type DetailsTextMemoModel = {
    theme?: Theme;
    show: boolean;
    expand: boolean;
    textOverlay: boolean;
    text: React.FC;
    height?: number;
    onRender?: (height: number) => void;
};
/**
 * Type for the TextContentMemoModel.
 */
export type TextContentMemoModel = Title & Content & ExpandButtonModel & ShowHideTextButtonModel & DetailsTextMemoModel;
/**
 * Type for the CardMediaHeaderMemoModel.
 */
export type CardMediaHeaderMemoModel = Title & Content;
export {};
