import { OnInit } from '@angular/core';
import { ImageMetadata } from '../../atoms/image/types';
import { CodeDisplayMetadata } from '../../molecules/code-display/types';
import { NotesBoxMetadata } from '../../molecules/notes-box/types';
import { PlainCodeBoxMetadata } from '../../molecules/plain-code-box/types';
import { ArticleButtonElement, ArticleCodeElement, ArticleCommandElement, ArticleCustomElement, ArticleElement, ArticleHighlightElement, ArticleImageElement, ArticleListElement, ArticleMetadata, ArticleNoteElement, ArticleQuoteElement, ArticleSeparatorElement, ArticleSubtitleElement, ArticleTextElement, ArticleTitleElement, ArticleVideoElement } from './types';
import * as i0 from "@angular/core";
export declare class ArticleComponent implements OnInit {
    /**
     * Configuración del artículo
     * @type {ArticleMetadata}
     */
    props: ArticleMetadata;
    constructor();
    ngOnInit(): void;
    /**
     * Obtiene los estilos de padding para el contenedor article
     */
    getContainerStyles(): {
        [key: string]: string;
    };
    /**
     * Función de trackBy para optimizar el rendering de elementos
     */
    trackByFn(index: number, element: ArticleElement): any;
    /**
     * Obtiene el espaciado por defecto según el tipo de elemento
     */
    private getDefaultSpacingForType;
    /**
     * Obtiene las clases CSS para el espaciado del elemento.
     * Prioridad: element.spacing > elementSpacing > espaciado nativo por tipo
     */
    getElementSpacingClass(element: ArticleElement): string;
    getTitleElement(element: ArticleElement): ArticleTitleElement;
    getSubtitleElement(element: ArticleElement): ArticleSubtitleElement;
    getTextElement(element: ArticleElement): ArticleTextElement;
    getQuoteElement(element: ArticleElement): ArticleQuoteElement;
    getHighlightElement(element: ArticleElement): ArticleHighlightElement;
    getCodeElement(element: ArticleElement): ArticleCodeElement;
    getListElement(element: ArticleElement): ArticleListElement;
    getButtonElement(element: ArticleElement): ArticleButtonElement;
    getSeparatorElement(element: ArticleElement): ArticleSeparatorElement;
    getImageElement(element: ArticleElement): ArticleImageElement;
    getVideoElement(element: ArticleElement): ArticleVideoElement;
    getCustomElement(element: ArticleElement): ArticleCustomElement;
    getQuoteTextProps(element: ArticleElement): {
        size: "small" | "medium" | "large" | "xlarge";
        color: import("@ionic/core").Color;
        content?: string;
        bold: boolean;
        contentKey?: string;
        contentClass?: string;
        contentFallback?: string;
        contentInterpolation?: Record<string, string | number>;
        processLinks?: boolean;
        linkConfig?: import("valtech-components").LinkProcessorConfig;
        allowPartialBold?: boolean;
        authorColor?: import("@ionic/core").Color;
        alignment?: "left" | "center" | "right";
        showQuoteMark?: boolean;
    };
    getHighlightTextProps(element: ArticleElement): {
        size: "small" | "medium" | "large" | "xlarge";
        color: import("@ionic/core").Color;
        content?: string;
        bold: boolean;
        contentKey?: string;
        contentClass?: string;
        contentFallback?: string;
        contentInterpolation?: Record<string, string | number>;
        processLinks?: boolean;
        linkConfig?: import("valtech-components").LinkProcessorConfig;
        allowPartialBold?: boolean;
    };
    getHighlightColor(element: ArticleElement): string;
    getButtonProps(element: ArticleElement): {
        actionType?: import("valtech-components").ActionType;
        expand?: "full" | "block";
        link?: string;
        href?: string;
        routerLink?: string | any[];
        target?: "_blank" | "_self" | "_parent" | "_top";
        download?: string;
        color: import("@ionic/core").Color;
        state: import("valtech-components").ComponentState;
        text?: string;
        contentKey?: string;
        contentClass?: string;
        contentFallback?: string;
        contentInterpolation?: Record<string, string | number>;
        icon?: import("valtech-components").IconMetada;
        shape?: "round";
        size?: "default" | "small" | "large";
        fill?: "default" | "clear" | "outline" | "solid";
        type: "reset" | "submit" | "button";
        token?: string;
        ref?: any;
        handler?: (value: any) => any;
    };
    getCodeDisplayProps(element: ArticleElement): CodeDisplayMetadata;
    getNoteElement(element: ArticleElement): ArticleNoteElement;
    getCommandElement(element: ArticleElement): ArticleCommandElement;
    getNoteBoxProps(element: ArticleElement): NotesBoxMetadata;
    getCommandProps(element: ArticleElement): PlainCodeBoxMetadata;
    getImageMetadata(element: ArticleElement): ImageMetadata;
    static ɵfac: i0.ɵɵFactoryDeclaration<ArticleComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ArticleComponent, "val-article", never, { "props": { "alias": "props"; "required": false; }; }, {}, never, never, true, never>;
}
