import { OutputEmitterRef } from '@angular/core'; import { BaseDirective } from '../directives'; import { SizeOption } from '../types/size-options.type'; import * as i0 from "@angular/core"; /** * The mutable properties of the checkbox. */ export interface CheckboxMutableProps { /** * Whether the checkbox is checked. default is false */ readonly checked: boolean; /** * Whether the checkbox is indeterminate. default is false */ readonly indeterminate?: boolean; /** * The checkbox's children if any. */ readonly children?: Checkbox[]; } export interface CheckboxActions { /** * Toggles the checkbox from origin. * @param options The options for the toggle. * @returns A promise that resolves with the changes. */ toggle(options?: CheckboxToggleOptions): void; } export interface CheckboxEvents { /** * Emits when the checkbox state changes. */ readonly changes: OutputEmitterRef; /** * Emits when the checkbox checked state changes. */ readonly checkedChange: OutputEmitterRef; /** * Emits when the checkbox indeterminate state changes. */ readonly indeterminateChange: OutputEmitterRef; } type EventOrigin = 'self' | 'parent' | 'child'; export interface CheckboxToggleOptions { /** * The origin of the event. Default is `'self'`. */ origin?: EventOrigin; /** * The event that triggered the toggle. */ event?: Event; } export interface Checkbox extends CheckboxActions, CheckboxEvents, CheckboxMutableProps { readonly id: string; readonly inputRef: HTMLInputElement; } /** * The icon to display when the checkbox is indeterminate or checked. * Default is `{ indeterminate: 'minus', checked: 'check' }` */ export interface CheckboxIcon { /** * The name of the icon to display when the checkbox is indeterminate. * Default is `'minus'`. The icon must be configured. Otherwise, it will not display. */ indeterminate: string; /** * The name of the icon to display when the checkbox is checked. * Default is `'check'`. The icon must be configured. Otherwise, it will not display. */ checked: string; /** * The size of the icon. Default is `'sm'`. */ size: SizeOption; } export declare const CHECKBOX_CONFIG: import("@angular/core").InjectionToken; export declare const CHECKBOX_ICON: import("@angular/core").InjectionToken; export declare abstract class CheckboxBase extends BaseDirective { protected parent: CheckboxBase | null; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * Checks if the component is a Checkbox. * If so, you can safely access the Checkbox members inside this block scope. */ export declare function isCheckbox(component: unknown): component is Checkbox; export {};