import { EventEmitter } from '@angular/core';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
/**
 * Configuration interface for JuvoButtonActionComponent
 *
 * @interface ButtonActionConfig
 * @since 2.0.0
 */
export interface ButtonActionConfig {
    /** Show Create button */
    buttonCreate?: boolean;
    /** Show Create and Copy button */
    buttonCreateCopy?: boolean;
    /** Show Save and Copy button */
    buttonSaveCopy?: boolean;
    /** Show Save button */
    buttonSave?: boolean;
    /** Disable all action buttons */
    disable?: boolean;
    /** Custom text for Save button */
    saveText?: string;
    /** Button style: true for solid, false for outlined */
    buttonType?: boolean;
}
/**
 * Action Button Group Component
 *
 * @description
 * A reusable button group component commonly used in forms and data entry screens.
 * Provides standard actions like Save, Create, Create Copy, Save Copy, and Cancel.
 * Originally designed for backoffice applications where consistent form actions are needed.
 *
 * @example
 * ```html
 * <!-- Basic usage -->
 * <juvo-button-action
 *   [buttonSave]="true"
 *   [buttonCreate]="true"
 *   (actionSaveTriggered)="onSave()"
 *   (actionCreateTriggered)="onCreate()"
 *   (actionCancelTriggered)="onCancel()">
 * </juvo-button-action>
 *
 * <!-- Advanced usage with loading state -->
 * <juvo-button-action
 *   [loading$]="loadingObservable$"
 *   [buttonSave]="true"
 *   [buttonCreateCopy]="true"
 *   [buttonType]="true"
 *   [disable]="!form.valid"
 *   saveText="Update Record"
 *   (actionSaveTriggered)="onUpdate()"
 *   (actionCreateCopyTriggered)="onDuplicate()">
 * </juvo-button-action>
 * ```
 *
 * @selector juvo-button-action
 * @since 2.0.0
 * @author Juvo Rafa Team
 */
export declare class JuvoButtonActionComponent {
    /** Observable for loading state of buttons */
    loading$?: Observable<boolean>;
    /** Configuration object for button visibility and behavior */
    config: ButtonActionConfig;
    /** Show Create button */
    buttonCreate?: boolean;
    /** Show Create and Copy button */
    buttonCreateCopy?: boolean;
    /** Show Save and Copy button */
    buttonSaveCopy?: boolean;
    /** Show Save button */
    buttonSave?: boolean;
    /** Disable all action buttons */
    disable: boolean;
    /** Custom text for Save button @default "Save" */
    saveText: string;
    /** Button style: true for solid, false for outlined @default false */
    buttonType: boolean;
    /** Emitted when Save button is clicked */
    actionSaveTriggered: EventEmitter<void>;
    /** Emitted when Create button is clicked */
    actionCreateTriggered: EventEmitter<void>;
    /** Emitted when Create and Copy button is clicked */
    actionCreateCopyTriggered: EventEmitter<void>;
    /** Emitted when Save and Copy button is clicked */
    actionSaveCopyTriggered: EventEmitter<void>;
    /** Emitted when Cancel button is clicked */
    actionCancelTriggered: EventEmitter<void>;
    /**
     * Gets the current loading state
     * @returns true if loading, false otherwise
     */
    get isLoading(): boolean;
    /**
     * Handles Save button click
     * @emits actionSaveTriggered
     */
    onSave(): void;
    /**
     * Handles Create button click
     * @emits actionCreateTriggered
     */
    onCreate(): void;
    /**
     * Handles Create and Copy button click
     * @emits actionCreateCopyTriggered
     */
    onCreateCopy(): void;
    /**
     * Handles Save and Copy button click
     * @emits actionSaveCopyTriggered
     */
    onSaveCopy(): void;
    /**
     * Handles Cancel button click
     * @emits actionCancelTriggered
     */
    onCancel(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<JuvoButtonActionComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<JuvoButtonActionComponent, "juvo-button-action", never, { "loading$": { "alias": "loading$"; "required": false; }; "config": { "alias": "config"; "required": false; }; "buttonCreate": { "alias": "buttonCreate"; "required": false; }; "buttonCreateCopy": { "alias": "buttonCreateCopy"; "required": false; }; "buttonSaveCopy": { "alias": "buttonSaveCopy"; "required": false; }; "buttonSave": { "alias": "buttonSave"; "required": false; }; "disable": { "alias": "disable"; "required": false; }; "saveText": { "alias": "saveText"; "required": false; }; "buttonType": { "alias": "buttonType"; "required": false; }; }, { "actionSaveTriggered": "actionSaveTriggered"; "actionCreateTriggered": "actionCreateTriggered"; "actionCreateCopyTriggered": "actionCreateCopyTriggered"; "actionSaveCopyTriggered": "actionSaveCopyTriggered"; "actionCancelTriggered": "actionCancelTriggered"; }, never, never, true, never>;
}
