/**
* Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com).
*
* WSO2 LLC. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import { FC, ReactNode } from 'react';
/**
* Render props exposed by FlowTimer when using the render-prop pattern.
*/
export interface FlowTimerRenderProps {
/** Human-readable formatted time string (e.g. "2:30" or "Timed out"). */
formattedTime: string;
/** Whether the timer has expired. */
isExpired: boolean;
/** Remaining time in seconds. 0 when expired. */
remaining: number;
}
/**
* Props for the FlowTimer component.
*/
export interface FlowTimerProps {
/**
* Render-props callback. When provided, the default countdown display is replaced
* with whatever JSX the callback returns.
*
* @example
* ```tsx
*
* {({ remaining, isExpired, formattedTime }) => (
*
* {isExpired ? 'Session expired' : `Time left: ${formattedTime}`}
*
* )}
*
* ```
*/
children?: (props: FlowTimerRenderProps) => ReactNode;
/** Initial number of seconds for the countdown. 0 or negative means no timer. */
expiresIn?: number;
/** Text template for the countdown display. Use {time} as a placeholder. */
textTemplate?: string;
}
/**
* Flow countdown timer component.
*
* Displays a countdown from the given number of seconds. When the time expires,
* shows "Timed out". Returns null if expiresIn <= 0.
*/
declare const FlowTimer: FC;
export default FlowTimer;
//# sourceMappingURL=FlowTimer.d.ts.map