import React from 'react';
import { ColumnModel, ColumnType, SelectColumn } from '../utils/synapseTypes';
import { CardLink, ColumnSpecifiedLink, CommonCardProps, DescriptionConfig, MarkdownLink } from './CardContainerLogic';
export declare type KeyToAlias = {
    key: string;
    alias?: string;
};
export declare type KeyToAliasMap = {
    [index: number]: KeyToAlias;
    [index: string]: KeyToAlias;
};
export declare type GenericCardSchema = {
    type: string;
    title: string;
    subTitle?: string;
    description?: string;
    icon?: string;
    imageFileHandleColumnName?: string;
    thumbnailRequiresPadding?: boolean;
    secondaryLabels?: any[];
    link?: string;
    dataTypeIconNames?: string;
};
export declare type IconOptions = {
    [index: string]: string;
};
export declare type GenericCardProps = {
    selectColumns?: SelectColumn[];
    columnModels?: ColumnModel[];
    facetAliases?: Record<string, string>;
    iconOptions?: IconOptions;
    isHeader?: boolean;
    isAlignToLeftNav?: boolean;
    schema: Record<string, number>;
    data: string[];
    tableEntityConcreteType: string | undefined;
    tableId: string | undefined;
    columnIconOptions?: {};
} & CommonCardProps;
export declare type GenericCardState = {
    hasClickedShowMore: boolean;
};
export declare const CARD_SHORT_DESCRIPTION_CSS = "SRC-short-description";
export declare const CARD_LONG_DESCRIPTION_CSS = "SRC-long-description";
export declare const getCutoff: (summary: string) => {
    previewText: string;
};
export declare const getValueOrMultiValue: ({ columnName, value, selectColumns, columnModels, }: {
    columnName?: string | undefined;
    value?: string | undefined;
    selectColumns?: SelectColumn[] | undefined;
    columnModels?: ColumnModel[] | undefined;
}) => ValueOrMultiValue;
declare type SynapseCardLabelProps = {
    value: string;
    columnName: string;
    labelLink: CardLink | MarkdownLink | ColumnSpecifiedLink | undefined;
    selectColumns: SelectColumn[] | undefined;
    columnModels: ColumnModel[] | undefined;
    isHeader: boolean;
    className?: string;
    rowData: string[];
};
export declare const SynapseCardLabel: React.FC<SynapseCardLabelProps>;
declare type ValueOrMultiValue = {
    str: string;
    strList?: string[];
    columnModelType?: ColumnType;
};
export default class GenericCard extends React.Component<GenericCardProps, GenericCardState> {
    static contextType: React.Context<import("../utils/SynapseContext").SynapseContextType | undefined>;
    constructor(props: GenericCardProps);
    getLinkParams(link: string, cardLinkConfig: CardLink | undefined, data: string[] | undefined, schema: any | undefined): {
        href: string;
        target: string;
    };
    getCardLinkHref(cardLink: CardLink | undefined, data: string[] | undefined, schema: Record<string, number> | undefined): string | undefined;
    getCutoff: (summary: string) => {
        previewText: string;
    };
    toggleShowMore: () => void;
    renderTitle: ({ href, target, titleSearchHandle, title, }: {
        target: string;
        titleSearchHandle: string | undefined;
        title: string;
        href: string;
    }) => JSX.Element;
    render(): JSX.Element;
    renderLongDescription(description: string, hasClickedShowMore: boolean, descriptionSubTitle: any, descriptionConfig?: DescriptionConfig): React.ReactNode;
    renderShortDescription(description: string, hasClickedShowMore: boolean, descriptionSubTitle: any, descriptionConfig?: DescriptionConfig): React.ReactNode;
}
export {};
