import { TemplateRef, Type } from '@angular/core'; import { CompsychDialogRef } from './dialog-ref'; import { DialogVariant } from './dialog-types'; import * as i0 from "@angular/core"; /** Configuration for {@link DialogService.open}. */ export interface CompsychDialogConfig { /** Layout type. Defaults to `modal-leading-icon`. */ variant?: DialogVariant; /** Heading text (drives the accessible name via `aria-labelledby`). */ title?: string; /** Supporting text (rendered for `centered` / `alert` variants). */ description?: string; /** Lucide icon name (leading header icon / centered badge glyph). */ icon?: string; /** When true (default) shows a close button and closes on Escape / backdrop click. */ dismissible?: boolean; /** Accessible label for the close button. */ closeLabel?: string; /** Accessible name used when no `title` is provided. */ ariaLabel?: string; /** Width override — any CSS length. Defaults to the variant width, viewport-clamped. */ width?: string; /** Whether to render the projected actions footer. */ showActions?: boolean; /** Data injected into the opened component via the CDK `DIALOG_DATA` token. */ data?: D; /** Extra class(es) for the overlay pane. */ panelClass?: string | string[]; } /** * Opens a component or template as a modal dialog inside the compsych-dialog chrome, * imperatively (like Angular Material's `MatDialog`). Built on `@angular/cdk/dialog`. * * The opened content is placed in the dialog body; the header (icon/title/close) and * behavior come from the config. The opened component can inject the CDK `DialogRef` * (to close, optionally with a result) and `DIALOG_DATA` (to read `config.data`) — both * re-exported from `@compsych-ui-components/angular`. * * const ref = dialogService.open(MyComponent, { * title: 'Edit details', variant: 'modal-leading-icon', icon: 'globe', data: { id }, * }); * ref.closed.subscribe((result) => { ... }); * * Requires `@angular/cdk/overlay-prebuilt.css` + the `@compsych-ui-components/shared` tokens * loaded globally. The scrim color is injected by the dialog — no extra stylesheet needed. */ export declare class DialogService { private readonly dialog; private readonly overlay; private readonly directionality; /** Opens `content` as a modal dialog. Returns a {@link CompsychDialogRef} (close / closed). */ open(content: Type | TemplateRef, config?: CompsychDialogConfig): CompsychDialogRef; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }