import * as React from "react"; import { IAvatarProps } from "./../Avatar"; import { IButtonProps } from "./../Button"; import { ILinkProps } from "./../Link"; import { IIconProps } from "./../Icon"; interface IHeaderProps { text?: string; } export declare enum SubheaderType { Simple = "Simple", Sectioned = "Sectioned" } interface ISubheaderSection { /** * Since we iterate through the provided sections, * we want to provide proper keys to React. */ id: string; text?: string; icon?: IIconProps; link?: ILinkProps; } interface ISubheaderProps { type: SubheaderType; text?: string; sections?: ISubheaderSection[]; } interface ICardProps { header?: IHeaderProps; /** * Render the main body of the */ renderContent?: () => JSX.Element; /** * Place the header and subheader next to each other */ inlineHeaders?: boolean; subheader?: ISubheaderProps; /** * If provided, a floating "action" button will render fixed * to the botton of the card. */ action?: IButtonProps; /** * This styling property removes the rounded edges from the bottom right and bottom left corners. */ flatBottom?: boolean; /** * This styling property will apply a `margin: 0 auto` to the element. This centers it horizontally * inside its containing element. */ center?: boolean; /** * The component calculates its height dynamically based on its parent container. If * the parent container also calculates its height dynamically a recalculation of height might be * needed. */ listenForReflowEvent?: boolean; /** * Should the stretch to fit inside its parent container */ stretch?: boolean; /** * Will set any string data on the 'data-card' attribute. */ dataAttr?: string; /** * Add a Christmas themed easter egg */ lights?: boolean; /** * Add an avatar to the left of the title */ avatar?: IAvatarProps; } export declare class Card extends React.PureComponent { cardRef: React.RefObject; contentContainerRef: React.RefObject; /** * We create a reference to the node which handles the scrollable * content content as we want to perform scroll fixes on it. * * @see `Utilities#provideBounce` */ cardContentRef: React.RefObject; constructor(props: ICardProps); componentDidMount(): void; componentWillUnmount(): void; render(): JSX.Element; private withCard; private withContentContainer; private addReflowListener; private removeReflowListener; /** * Stretch the to the bottom of its parent and the inner content to the bottom of the */ private stretchElements; } export {};