import { ReactNode } from 'react';
import { Toaster } from '@m4l/core';
import { CookieType } from '../../../areas/types';
import { ModuleAction } from '../../types';
/**
 * Interfaz que define un conjunto de herramientas relacionadas con la ventana que pueden ser proporcionadas por el contexto WindowToolsMF.
 */
export interface WindowToolsMF {
    /**
     * Método para obtener una cookie específica por su ID.
     * @param id El ID de la cookie que se desea obtener.
     * @returns La cookie correspondiente si se encuentra, de lo contrario, undefined.
     */
    getCookie: (id: string) => Record<string, any> | undefined;
    /**
     * Método para obtener el ID de la ventana actual.
     * @returns El ID de la ventana actual.
     */
    getWindowId: () => string;
    /**
     * Método para obtener todas las cookies de un tipo específico.
     * @param type El tipo de cookie del cual se desean obtener todas las cookies.
     * @returns Un objeto que contiene todas las cookies del tipo especificado.
     */
    getCookies: (type: CookieType) => Record<string, any>;
    /**
     * Método para establecer las acciones de ventana para el área actual.
     * @param newActions Las nuevas acciones de ventana que se desean establecer.
     * @param version (Opcional) La versión de las acciones de ventana.
     * @param buildTime (Opcional) El buildTime del Microfrontend.
     */
    setActions: (newActions: ModuleAction[], version?: string, buildTime?: string) => void;
    /**
     * Método para establecer una cookie específica.
     * @param id El ID de la cookie que se desea establecer.
     * @param type El tipo de cookie que se desea establecer.
     * @param cookie El contenido de la cookie que se desea establecer.
     */
    setCookie: (id: string, type: CookieType, cookie: Record<string, any> | Array<any>) => void;
    /**
     * Método para iniciar el indicador de progreso.
     */
    startProgress: () => void;
    /**
     * Método para detener el indicador de progreso.
     */
    stopProgress: () => void;
    /**
     * Método para mostrar una notificación toast.
     * @param options Las opciones de configuración para la notificación toast.
     */
    toast: Toaster;
    /**
     * Método para cerrar la ventana actual.
     */
    close: (useFnQueryClose?: boolean) => void;
    /**
     * Método para establecer la función de consulta de cierre de la ventana.
     * @param fnQueryClose La función de consulta de cierre de la ventana que se desea establecer.
     */
    setFnQueryClose: (fnQueryClose: () => void) => void;
    /**
     * Método para setear el titulo de la ventana y que pueda cambiar de idioma
     * @param {string} title Titulo que se visulizará en la ventana del módulo
     */
    setWindowTitle: (title: string) => void;
    /**
     * Método para setear el subtitulo de la ventana y que pueda cambiar de idioma
     * @param {string} subtitle Subtitulo que se visulizará en la ventana del módulo
     */
    setWindowSubTitle: (subtitle: string) => void;
    /**
     * Método para setear la información de edición de la ventana y que pueda cambiar de idioma
     * @param {string} editionInfo Información de edición que se visulizará en la ventana del módulo
     */
    setWindowEditionInfo: (editionInfo: string) => void;
}
/**
 * Props del componente WindowToolsMFProvider que incluyen las herramientas de ventana proporcionadas por la interfaz WindowToolsMF.
 */
export interface WindowToolsMFProviderProps extends WindowToolsMF {
    children: ReactNode;
}
/**
 * Props del contexto WindowToolsMF, excluyendo la prop children.
 */
export type WindowToolsMFContextProps = Omit<WindowToolsMFProviderProps, 'children'>;
//# sourceMappingURL=types.d.ts.map