import { SafeHtml } from '@angular/platform-browser';
import * as i0 from "@angular/core";
import * as i1 from "./ripple.directive";
/**
* Card type — selects the projected/laid-out content. Mirrors the library's `variant` pattern.
* `basic` is the Figma "cards" section (the "Card Item" family: icon + arrow +
* title/subtitle, sized, across the outlined/filled/gradient/image surfaces) —
* distinct from the `content` category tiles.
*/
export type CardVariant = 'basic' | 'content' | 'action' | 'metric';
/** Visual surface treatment. Mirrors the Figma "Card Item" Style property. */
export type CardAppearance = 'outlined' | 'filled' | 'gradient' | 'image';
/** Corner radius token: `md` (12px), `lg` (16px), `xl` (24px). */
export type CardRadius = 'md' | 'lg' | 'xl';
/** Inner padding token (used by `variant="basic"`; typed variants size themselves). */
export type CardPadding = 'none' | 'sm' | 'md' | 'lg' | 'xl';
/** Action-card layout. */
export type CardOrientation = 'horizontal' | 'vertical';
/** Base Card Item size (Figma "Size" property). Drives layout + type scale. */
export type CardSize = 'xl' | 'lg' | 'md' | 'sm' | 'xs';
/** Heading level for the title / hero headline / action label (screen-reader heading semantics). */
export type CardHeadingLevel = 2 | 3 | 4 | 5 | 6;
/** How the content-variant category renders: trailing pill (`chip`) or leading plain-text `label`. */
export type CardCategoryStyle = 'chip' | 'label';
/**
* Content-variant icon badge treatment:
* - `primary` — white icon on a filled primary (blue) circle (default).
* - `neutral` — dark (on-surface) icon on a white circle with a thin outline.
*/
export type CardIconStyle = 'primary' | 'neutral';
/**
* Card — the single Cards component for the ComPsych Design System.
*
* Figma: Core Components — "Cards" (file VFBn7KCDy3FSIlvhNo3ylq, 1117:9829).
*
* One component, switched by `variant` (like Accordion's `variant`):
* - `basic` — a bare surface; project your own content.
* - `content` — icon badge / image, category chip, title, subtitle, description,
* action pill, arrow; hero (`headline`) layout.
* - `action` — compact interactive row (icon · label/description · arrow); horizontal/vertical.
* - `metric` — centered value + label; `current` (selected) state.
*
* `appearance` is the orthogonal surface skin (outlined / filled / gradient / image).
* When `interactive`, the whole card is a button (role/tabindex/keyboard) with the
* hover / focus / pressed ripple. All values are sys design tokens.
*
*
*
* Projected content
*/
export declare class CardComponent {
/** Card type. Defaults to `basic` (projected content). */
readonly variant: import("@angular/core").InputSignal;
/** Surface treatment. Defaults to `outlined`. */
readonly appearance: import("@angular/core").InputSignal;
/** Corner radius token. Defaults to `lg` (16px). */
readonly radius: import("@angular/core").InputSignal;
/** Inner padding for `variant="basic"`. Typed variants size themselves. */
readonly padding: import("@angular/core").InputSignal;
/** Card Item size (`variant="basic"`): xl/lg/md/sm/xs. Defaults to `md`. */
readonly size: import("@angular/core").InputSignal;
/** Whole-card click target: adds role/tabindex, hover/press states and ripple. */
readonly interactive: import("@angular/core").InputSignal;
/** Disabled visual + non-interactive. */
readonly disabled: import("@angular/core").InputSignal;
/** Applies the focused (blue outline) appearance. Useful for action cards to indicate selection. */
readonly selected: import("@angular/core").InputSignal;
/** Background image URL for `appearance="image"`. */
readonly imageSrc: import("@angular/core").InputSignal;
/**
* `background-position` for the `image` appearance media (e.g. `'85% 0'` for an
* off-center hero). Defaults to `'center'` — unchanged from before.
*/
readonly imagePosition: import("@angular/core").InputSignal;
/** Lucide icon name (content badge / action leading icon). */
readonly icon: import("@angular/core").InputSignal;
/** Content: category chip text. */
readonly category: import("@angular/core").InputSignal;
/**
* Content: how the category renders — `'chip'` (default) as the trailing pill,
* or `'label'` as a leading plain-text label beside the icon.
*/
readonly categoryStyle: import("@angular/core").InputSignal;
/**
* Content: icon badge treatment — `'primary'` (default) is a white icon on a
* filled primary (blue) circle; `'neutral'` is a dark icon on a white circle
* with a thin outline.
*/
readonly iconStyle: import("@angular/core").InputSignal;
/** Content: title. */
readonly title: import("@angular/core").InputSignal;
/** Content: subtitle. */
readonly subtitle: import("@angular/core").InputSignal;
/** Content/action: supporting description. */
readonly description: import("@angular/core").InputSignal;
/** Content: large hero display text (switches to the XL hero layout). */
readonly headline: import("@angular/core").InputSignal;
/** Content: presentational action pill label. */
readonly actionLabel: import("@angular/core").InputSignal;
/** Content: show the trailing arrow-up-right affordance. */
readonly showArrow: import("@angular/core").InputSignal;
/** Content (gradient): show the inner gradient panel background. Set to `false` to render a flat surface. */
readonly showGradient: import("@angular/core").InputSignal;
/** Content: remove the fixed min-height so the card sizes to its content. */
readonly compact: import("@angular/core").InputSignal;
/** Action/metric: primary label. */
readonly label: import("@angular/core").InputSignal;
/** Action: trailing Lucide icon (horizontal layout). */
readonly trailingIcon: import("@angular/core").InputSignal;
/** Action: layout orientation. */
readonly orientation: import("@angular/core").InputSignal;
/** Action: stretch the card to 100% of its container width. */
readonly fullWidth: import("@angular/core").InputSignal;
/** Metric: the prominent value. */
readonly value: import("@angular/core").InputSignal;
/** Metric: selected/current state (primary border + text). */
readonly current: import("@angular/core").InputSignal;
/**
* Opts the title / hero headline / action label into a heading in the
* accessibility tree via `role="heading"` + `aria-level`, so consumers that
* replace real headings keep heading semantics and screen-reader heading
* navigation (WCAG 1.3.1). Omit (default) to render as plain text — no visual
* or behavioral change for existing usages.
*/
readonly headingLevel: import("@angular/core").InputSignal;
/**
* Accessible name for an `interactive` card (which is a `role="button"`).
* Required for image-only / icon-only interactive cards that have no text, and
* useful to give text-heavy cards a concise name instead of their full content.
* Bind as `aria-label`.
*/
readonly ariaLabel: import("@angular/core").InputSignal;
/** Emits on click / Enter / Space when interactive and not disabled. */
readonly cardClick: import("@angular/core").OutputEmitterRef;
private readonly sanitizer;
private readonly ripple;
readonly isImage: import("@angular/core").Signal;
/**
* Heading level actually applied. Suppressed when the whole card is interactive
* (`role="button"`), since a heading nested in a button isn't exposed as a
* heading — the two would conflict.
*/
readonly effectiveHeadingLevel: import("@angular/core").Signal;
/** Base Card Item plain-icon glyph size by `size` (48 md, 32 sm, 24 xs). */
readonly basicIconSize: import("@angular/core").Signal<32 | 24 | 48>;
/** Base Card Item arrow glyph size by `size` (24 md, 20 sm/xs). */
readonly basicArrowSize: import("@angular/core").Signal<24 | 20>;
/** CSS `url(...)` for the media layer, or null when no image is set. */
readonly mediaUrl: import("@angular/core").Signal;
/** Padding resolved per variant; `basic` honors the `padding` input. */
readonly effectivePadding: import("@angular/core").Signal;
constructor();
onActivate(): void;
onKeyDown(event: KeyboardEvent): void;
/** Renders a sized/weighted Lucide SVG for template use. */
iconSvg(name: string, size: number, strokeWidth?: number): SafeHtml;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}