import { SimpleChange } from '@angular/core';
import { Observable } from 'rxjs';
/**
 * Alert
 */
export declare const fudisAlertPositionArray: readonly ["static", "absolute", "fixed"];
export type FudisAlertPosition = (typeof fudisAlertPositionArray)[number];
export interface FudisAlert {
    message: Observable<string>;
    type: FudisNotification;
    id: string;
}
export interface FudisAlertElement extends FudisAlert {
    htmlId: string;
    buttonId: string;
    initialFocus: boolean;
}
/**
 * Badge
 */
export declare const fudisBadgeVariantArray: readonly ["accent", "danger", "primary", "secondary", "success"];
export type FudisBadgeVariant = (typeof fudisBadgeVariantArray)[number];
/**
 * Button
 */
export declare const fudisButtonVariantArray: readonly ["primary", "secondary", "tertiary"];
export type FudisButtonVariant = (typeof fudisButtonVariantArray)[number];
export declare const fudisButtonSizeArray: readonly ["icon-only", "small", "medium"];
export type FudisButtonSize = (typeof fudisButtonSizeArray)[number];
export declare const fudisButtonTypeArray: readonly ["submit", "button"];
export type FudisButtonType = (typeof fudisButtonTypeArray)[number];
/**
 * Description List
 */
export type FudisDescriptionListVariant = 'regular' | 'compact';
export type FudisDescriptionListItemDetailLanguageContent = {
    [lang in FudisLanguageAbbr]?: {
        [id: string]: string | null | undefined;
    };
};
/**
 * Dialog
 */
export declare const fudisDialogSizeArray: readonly ["xs", "sm", "md", "lg", "xl"];
export type FudisDialogSize = (typeof fudisDialogSizeArray)[number];
/**
 * Dropdown Menu
 */
export declare const fudisDropdownMenuAlignArray: readonly ["left", "center", "right"];
export type FudisDropdownMenuAlign = (typeof fudisDropdownMenuAlignArray)[number];
/**
 * Expandable
 */
export type FudisExpandableType = 'regular' | 'lite';
/**
 * FieldsetActions
 */
export declare const fudisFieldsetActionsAlignArray: readonly ["start", "below", "end"];
export type fudisFieldsetActionsAlign = (typeof fudisFieldsetActionsAlignArray)[number];
/**
 * Language Badge
 */
export type FudisLanguageAbbr = 'fi' | 'sv' | 'en';
/**
 * Notification
 */
export declare const fudisNotificationVariantArray: readonly ["warning", "danger", "success", "info"];
export type FudisNotification = (typeof fudisNotificationVariantArray)[number];
export type FudisPopoverPosition = 'left' | 'right' | 'above' | 'below';
/**
 * Types for extending ngOnChanges SimpleChanges type
 *
 * - T = any FudisComponent which have @Input() properties
 * - P = property of component. E. g. for Grid columns and rowGap or for Heading level and size.
 * - So T[P] translates to e.g. HeadingComponent['level'] --> HeadingComponent.level --> values from
 *   1-6
 */
interface FudisComponentChange<T, P extends keyof T> extends SimpleChange {
    previousValue: T[P] | undefined;
    currentValue: T[P] | undefined;
    firstChange: boolean;
}
export type FudisComponentChanges<T> = {
    [P in keyof T]?: FudisComponentChange<T, P>;
};
export {};
