import * as React from 'react';
import type { MediaHandle } from '../useMediaElement.js';
import { Actions } from './parts/Actions.js';
import { Expand } from './parts/Expand.js';
export interface NowPlayingBarRootProps {
/** Media element handle the bar drives; omit to control playback yourself. */
media?: MediaHandle | undefined;
/** Controlled playing state. */
playing?: boolean | undefined;
/** 0..1 controlled progress, written to --_ag-media-progress on the root. */
progress?: number | undefined;
/** Artwork image URL. */
artwork?: string | undefined;
/** Called with the next playing state. */
onPlayingChange?: ((playing: boolean) => void) | undefined;
/** Called when Previous is pressed; the button is shown only when set. */
onPrevious?: (() => void) | undefined;
/** Called when Next is pressed; the button is shown only when set. */
onNext?: (() => void) | undefined;
/** Controlled expanded state. */
expanded?: boolean | undefined;
/** Called with the next expanded state. */
onExpandedChange?: ((expanded: boolean) => void) | undefined;
/** Material variant of the bar. */
variant?: 'regular' | 'clear' | undefined;
/** Sample the Artwork
once per src; writes data-ag-media-tone and --_ag-media-luma on the root. */
sampleTone?: boolean | undefined;
/** Pinned to the viewport edge: pads by env(safe-area-inset-bottom). */
fixed?: boolean | undefined;
/** Id of the expandable region — required when Expand is rendered. */
expandedId?: string | undefined;
/** Class name merged onto the root element. */
className?: string | undefined;
/** Content rendered inside the component. */
children?: React.ReactNode;
}
declare function Root(props: NowPlayingBarRootProps): React.ReactElement;
export declare const NowPlayingBar: {
readonly Root: typeof Root;
readonly Artwork: ({ src, className, ref }: {
src?: string | undefined;
className?: string;
} & {
ref?: React.Ref;
}) => React.JSX.Element;
readonly Title: ({ className, children, ref }: {
className?: string;
children?: React.ReactNode;
} & {
ref?: React.Ref;
}) => React.JSX.Element;
readonly Subtitle: ({ className, children, ref }: {
className?: string;
children?: React.ReactNode;
} & {
ref?: React.Ref;
}) => React.JSX.Element;
readonly Progress: ({ className, ref }: {
className?: string;
} & {
ref?: React.Ref;
}) => React.JSX.Element;
readonly Actions: typeof Actions;
readonly Expand: typeof Expand;
};
export type NowPlayingBar = typeof NowPlayingBar;
export {};
//# sourceMappingURL=NowPlayingBar.d.ts.map