import { EventEmitter } from '@angular/core';
import { ArticleCardClickEvent } from '../../molecules/article-card/types';
import { ArticleStripMetadata } from './types';
import * as i0 from "@angular/core";
/**
 * val-article-strip
 *
 * Horizontal scroll row of article cards with a section header and an optional
 * "see all" link/action. Reuses val-horizontal-scroll + val-article-card.
 *
 * @example
 * ```html
 * <val-article-strip
 *   [props]="{
 *     title: 'Latest Articles',
 *     seeAllLabel: 'View all',
 *     seeAllRoute: '/blog',
 *     articles: [...]
 *   }"
 *   (onArticleClick)="openArticle($event)"
 * />
 * ```
 */
export declare class ArticleStripComponent {
    private navigation;
    /** Component configuration */
    readonly props: import("@angular/core").InputSignal<Partial<ArticleStripMetadata>>;
    /** Emitted when the "see all" link/button is clicked */
    onSeeAll: EventEmitter<string>;
    /** Re-emits the onClick event from each article card */
    onArticleClick: EventEmitter<ArticleCardClickEvent>;
    /** Merged configuration with defaults */
    config: import("@angular/core").Signal<ArticleStripMetadata & Required<Pick<ArticleStripMetadata, "gap" | "cardWidth">>>;
    hasSeeAll: import("@angular/core").Signal<boolean>;
    handleSeeAll(event: MouseEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ArticleStripComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ArticleStripComponent, "val-article-strip", never, { "props": { "alias": "props"; "required": false; "isSignal": true; }; }, { "onSeeAll": "onSeeAll"; "onArticleClick": "onArticleClick"; }, never, never, true, never>;
}
