import type * as React from 'react';
import type { Override } from '../helpers/overrides';
import type { DURATION, PLACEMENT } from './constants';
export type Duration = typeof DURATION.infinite | typeof DURATION.short | typeof DURATION.medium | typeof DURATION.long;
export type Placement = typeof PLACEMENT.topLeft | typeof PLACEMENT.top | typeof PLACEMENT.topRight | typeof PLACEMENT.bottomLeft | typeof PLACEMENT.bottom | typeof PLACEMENT.bottomRight;
export type SnackbarElementOverrides = {
    Root?: Override;
    Content?: Override;
    StartEnhancerContainer?: Override;
    Spinner?: Override;
    Message?: Override;
    WrapActionButtonContainer?: Override;
    ActionButtonContainer?: Override;
};
export type SnackbarElementProps = {
    actionMessage?: string;
    actionOnClick?: (a: React.SyntheticEvent<HTMLButtonElement>) => unknown;
    focus?: boolean;
    message: React.ReactNode;
    overrides?: SnackbarElementOverrides;
    progress?: boolean;
    startEnhancer?: React.ComponentType<{
        size: number;
    }>;
};
export type SnackbarProviderProps = {
    children?: React.ReactNode;
    overrides?: {
        PlacementContainer?: Override;
    } & SnackbarElementOverrides;
    placement?: Placement;
    defaultDuration?: Duration;
};
