import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { DownloadService } from '../../../services/download.service';
import { IconService } from '../../../services/icons.service';
import { NavigationService } from '../../../services/navigation';
import { ButtonMetadata } from '../../types';
import * as i0 from "@angular/core";
export declare class ButtonComponent implements OnInit, OnChanges {
private download;
private navigation;
states: {
ENABLED: "ENABLED";
DISABLED: "DISABLED";
WORKING: "WORKING";
ERROR: "ERROR";
};
private presets;
/**
* The text to display on the button.
*/
displayText: string;
/**
* Clases de tamaño del botón.
*
* `icon-only` se DERIVA de que no haya texto en vez de pedirse por prop: un
* botón sin texto ya declaró todo lo que hacía falta saber, y una prop extra
* solo agrega una forma de que alguien la olvide y el botón salga como cápsula
* estirada. Ver la escala en button.component.scss.
*/
sizeClasses(): string[];
/**
* `tint` no existe en Ionic — se renderiza como `clear` (sin fondo/borde
* propios de Ionic) y la superficie tenue la aporta `.button-tint` en el
* SCSS, vía la clase que agrega `sizeClasses()`.
*/
ionFill(): 'clear' | 'outline' | 'solid' | 'default' | undefined;
/**
* Preset name to apply. Presets define reusable button configurations
* (size, color, fill, etc.) that can be registered at app level.
*
* @example
*
*/
preset?: string;
/**
* Button configuration. Values here override preset values.
* When using presets, only partial props are needed (preset provides defaults).
*/
props: Partial;
/**
* Resolved props after merging preset + explicit props.
* Preset values are overridden by explicit props.
*/
resolvedProps: ButtonMetadata;
/**
* Event emitted when the button is clicked.
*/
onClick: EventEmitter;
constructor(download: DownloadService, _icon: IconService, navigation: NavigationService);
ngOnInit(): void;
ngOnChanges(changes: SimpleChanges): void;
/**
* Merge preset configuration with explicit props.
* Explicit props take precedence over preset values.
*/
private resolveProps;
/**
* Set up the text content based on the resolved props configuration.
*/
private setupDisplayText;
/**
* Interpolate placeholders in content with provided values.
* Supports {{placeholder}} format.
*/
private interpolateContent;
clickHandler(): void;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}