import * as _angular_core from '@angular/core';
import { ZIcon } from '@shival99/z-ui/components/z-icon';
import { ClassValue } from 'clsx';
import * as class_variance_authority_types from 'class-variance-authority/types';
import { VariantProps } from 'class-variance-authority';

type ZMetricCardSize = 'sm' | 'default' | 'lg';
type ZMetricCardVariant = 'default' | 'bordered' | 'soft';
type ZMetricCardTrendDirection = 'up' | 'down' | 'neutral';
type ZMetricCardDecor = 'none' | 'wave' | 'grid' | 'rings' | 'bars' | 'dots' | 'spark';
interface ZMetricCardTrend {
    value: string | number;
    direction?: ZMetricCardTrendDirection;
    label?: string;
}
interface ZMetricCardAction {
    label: string;
    icon?: ZIcon;
}

declare class ZMetricCardComponent {
    readonly zActionClick: _angular_core.OutputEmitterRef<ZMetricCardAction>;
    readonly class: _angular_core.InputSignal<ClassValue>;
    readonly zTitle: _angular_core.InputSignal<string>;
    readonly zValue: _angular_core.InputSignal<string | number>;
    readonly zDescription: _angular_core.InputSignal<string>;
    readonly zIcon: _angular_core.InputSignal<ZIcon | undefined>;
    readonly zTrend: _angular_core.InputSignal<ZMetricCardTrend | undefined>;
    readonly zProgress: _angular_core.InputSignal<number | undefined>;
    readonly zAction: _angular_core.InputSignal<ZMetricCardAction | undefined>;
    readonly zSize: _angular_core.InputSignal<ZMetricCardSize>;
    readonly zVariant: _angular_core.InputSignal<ZMetricCardVariant>;
    readonly zDecor: _angular_core.InputSignal<ZMetricCardDecor>;
    readonly zLoading: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
    protected readonly hostClasses: _angular_core.Signal<string>;
    protected readonly iconClasses: _angular_core.Signal<string>;
    protected readonly valueClasses: _angular_core.Signal<string>;
    protected readonly decorClasses: _angular_core.Signal<string>;
    protected readonly trendDirection: _angular_core.Signal<ZMetricCardTrendDirection>;
    protected readonly trendClasses: _angular_core.Signal<string>;
    protected readonly trendIcon: _angular_core.Signal<ZIcon>;
    protected readonly normalizedProgress: _angular_core.Signal<number | null>;
    protected onActionClick(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZMetricCardComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZMetricCardComponent, "z-metric-card", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zTitle": { "alias": "zTitle"; "required": false; "isSignal": true; }; "zValue": { "alias": "zValue"; "required": false; "isSignal": true; }; "zDescription": { "alias": "zDescription"; "required": false; "isSignal": true; }; "zIcon": { "alias": "zIcon"; "required": false; "isSignal": true; }; "zTrend": { "alias": "zTrend"; "required": false; "isSignal": true; }; "zProgress": { "alias": "zProgress"; "required": false; "isSignal": true; }; "zAction": { "alias": "zAction"; "required": false; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zVariant": { "alias": "zVariant"; "required": false; "isSignal": true; }; "zDecor": { "alias": "zDecor"; "required": false; "isSignal": true; }; "zLoading": { "alias": "zLoading"; "required": false; "isSignal": true; }; }, { "zActionClick": "zActionClick"; }, never, ["*"], true, never>;
}

declare const zMetricCardVariants: (props?: ({
    zSize?: "sm" | "default" | "lg" | null | undefined;
    zVariant?: "default" | "bordered" | "soft" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
declare const zMetricCardIconVariants: (props?: ({
    zSize?: "sm" | "default" | "lg" | null | undefined;
    zVariant?: "default" | "bordered" | "soft" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
declare const zMetricCardValueVariants: (props?: ({
    zSize?: "sm" | "default" | "lg" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
declare const zMetricCardTrendVariants: (props?: ({
    zTrendDirection?: "up" | "down" | "neutral" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
type ZMetricCardVariants = VariantProps<typeof zMetricCardVariants>;
type ZMetricCardIconVariants = VariantProps<typeof zMetricCardIconVariants>;
type ZMetricCardTrendVariants = VariantProps<typeof zMetricCardTrendVariants>;

export { ZMetricCardComponent, zMetricCardIconVariants, zMetricCardTrendVariants, zMetricCardValueVariants, zMetricCardVariants };
export type { ZMetricCardAction, ZMetricCardDecor, ZMetricCardIconVariants, ZMetricCardSize, ZMetricCardTrend, ZMetricCardTrendDirection, ZMetricCardTrendVariants, ZMetricCardVariant, ZMetricCardVariants };
