import { OnDestroy } from '@angular/core';
import { DialogVariant } from './dialog-types';
import * as i0 from "@angular/core";
/** How a dialog was closed — surfaced by the `closed` output. */
export type DialogCloseReason = 'programmatic' | 'backdrop' | 'escape' | 'close-button';
/**
* A themeable modal dialog built on `@angular/cdk/dialog` (centered, scrimmed, focus-trapped).
*
* Figma: Core Components — "Dialog" organism (file VFBn7KCDy3FSIlvhNo3ylq, 873:9194).
*
* One component, switched by `variant`:
* - `modal-leading-icon` — leading icon + title header, projected body, split footer.
* - `modal-centered-icon` — centered icon badge, centered title + description, split footer.
* - `alert` — compact title + description, right-aligned footer.
*
* Open state is a two-way `[(open)]` model wrapped around the CDK `Dialog` service. The
* CDK dialog container provides `role="dialog"`, `aria-modal`, the focus trap, initial
* focus (`autoFocus: 'dialog'`) and focus restoration. The dialog closes on Escape /
* backdrop click (when `dismissible`); those are handled here so `closed` can report a
* reason. Title/description come from inputs; project the body as default content and each
* action button with the `cmpDialogActions` attribute (the footer lays them out — split
* full-width for modals, right-aligned for alerts).
*
*
* Body content…
*
*
*
*
* Consumers must load `@angular/cdk/overlay-prebuilt.css` (overlay positioning) and the
* `@compsych-ui-components/shared` design tokens globally. The scrim color is injected by
* the dialog itself — no extra stylesheet import is needed.
*/
export declare class DialogComponent implements OnDestroy {
/** Two-way open state. Set to `true` to show the dialog, `false` to close it. */
readonly open: import("@angular/core").ModelSignal;
/** Layout type. Defaults to `modal-leading-icon`. */
readonly variant: import("@angular/core").InputSignal;
/**
* Optional width override — any CSS length (e.g. `'1000px'`). Defaults to the variant
* width (800px modal / 600px alert). Always clamped to the viewport on small screens.
*/
readonly width: import("@angular/core").InputSignal;
/** Heading text. Also drives the accessible name via `aria-labelledby`. */
readonly title: import("@angular/core").InputSignal;
/** Supporting text under the title (rendered for `centered` and `alert` variants). */
readonly description: import("@angular/core").InputSignal;
/** Lucide icon name — the leading header icon (`leading`) or centered badge glyph (`centered`). */
readonly icon: import("@angular/core").InputSignal;
/**
* When true (default) the dialog shows a close button and closes on Escape / backdrop click.
* When false, the dialog is a forced choice — provide a focusable action (e.g. a
* `[cmpDialogActions]` button) so keyboard users can dismiss it (WCAG 2.1.2, no keyboard trap).
*/
readonly dismissible: import("@angular/core").InputSignal;
/** Accessible label for the close button. */
readonly closeLabel: import("@angular/core").InputSignal;
/** Accessible name used when no `title` is provided (e.g. a fully custom body). */
readonly ariaLabel: import("@angular/core").InputSignal;
/** Renders the action footer. Set false to hide it when there are no actions. */
readonly showActions: import("@angular/core").InputSignal;
/** Emits after the dialog has been opened and shown. */
readonly opened: import("@angular/core").OutputEmitterRef;
/** Emits after the dialog has closed, with the reason it closed. */
readonly closed: import("@angular/core").OutputEmitterRef;
/** The dialog surface template, projected into the CDK dialog container when open. */
private panelTemplate;
private readonly dialog;
private readonly overlay;
private readonly directionality;
private readonly viewContainerRef;
private dialogRef?;
private closeReason;
private readonly _ids;
protected readonly titleId: string;
protected readonly descId: string;
constructor();
ngOnDestroy(): void;
/** Close request from the close button. */
protected requestClose(): void;
private closeWith;
private attach;
private detach;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}