import type { DateTime } from 'luxon';
import React from 'react';
import type { LifecycleEventSummary } from '../overview/artifact/utils';
import './VersionMetadata.less';
export declare const MetadataElement: React.FC<{
    className?: string;
}>;
export declare const METADATA_TEXT_COLOR = "nobel";
export interface VersionMessageData {
    by?: string;
    at?: string;
    comment?: string;
}
export interface ICompareLinks {
    previous?: string;
    current?: string;
}
export declare const toPinnedMetadata: (data: {
    pinnedAt?: string;
    pinnedBy?: string;
    comment?: string;
}) => VersionMessageData;
export declare const toVetoedMetadata: (data: {
    vetoedAt?: string;
    vetoedBy?: string;
    comment?: string;
}) => VersionMessageData;
export interface IVersionMetadataProps {
    build?: IVersionBuildProps['build'];
    author?: string;
    deployedAt?: string;
    buildsBehind?: number;
    isDeploying?: boolean;
    isPending?: boolean;
    bake?: LifecycleEventSummary;
    pinned?: VersionMessageData;
    vetoed?: VersionMessageData;
    isCurrent?: boolean;
}
interface IVersionCreatedAtProps {
    createdAt?: string | DateTime;
    linkProps: Record<string, string>;
}
export declare const VersionCreatedAt: ({ createdAt, linkProps }: IVersionCreatedAtProps) => JSX.Element;
declare const badgeTypeToDetails: {
    deploying: {
        className: string;
        text: string;
    };
    baking: {
        className: string;
        text: string;
    };
    deployed: {
        className: string;
        text: string;
    };
};
interface IMetadataBadgeProps {
    type: keyof typeof badgeTypeToDetails;
    tooltip?: string;
    link?: string;
}
export declare const MetadataBadge: ({ type, link, tooltip }: IMetadataBadgeProps) => JSX.Element;
interface IVersionMessage {
    data: VersionMessageData;
    type: 'pinned' | 'vetoed';
    newRow?: boolean;
}
export declare const VersionMessage: ({ data, type, newRow }: IVersionMessage) => JSX.Element;
interface IVersionAuthorProps {
    author?: string;
}
export declare const VersionAuthor: ({ author }: IVersionAuthorProps) => JSX.Element;
interface IVersionBranchProps {
    branch?: string;
}
export declare const VersionBranch: ({ branch }: IVersionBranchProps) => JSX.Element;
interface IVersionBuildProps {
    build: {
        buildNumber?: string;
        version?: string;
    } & Partial<LifecycleEventSummary>;
    withPrefix?: boolean;
}
export declare const VersionBuild: ({ build, withPrefix }: IVersionBuildProps) => JSX.Element;
interface IVersionBuildsProps {
    builds: Array<IVersionBuildProps['build']>;
}
export declare const VersionBuilds: ({ builds }: IVersionBuildsProps) => JSX.Element;
export declare const BaseVersionMetadata: React.FC;
interface ILifecycleEventDetailsProps extends Partial<LifecycleEventSummary> {
    title: string;
    showLink?: boolean;
    version?: string;
}
export declare const LifecycleEventDetails: ({ version, duration, link, startedAt, title, showLink, }: ILifecycleEventDetailsProps) => JSX.Element;
declare type IDeploymentStatusProps = Pick<IVersionMetadataProps, 'deployedAt' | 'isPending' | 'isCurrent' | 'isDeploying'>;
export declare const DeploymentStatus: ({ deployedAt, isCurrent, isPending, isDeploying }: IDeploymentStatusProps) => JSX.Element;
export {};
