import type { BaseComponent } from "../base";
import type { Overrides } from "../overrides";
import type { SheetProps } from "./sheet";
import type { StackProps } from "./stack";
interface WorkflowAction {
    type: "workflow";
}
interface RestorePurchasesAction {
    type: "restore_purchases";
}
interface NavigateBackAction {
    type: "navigate_back";
}
interface CloseAction {
    type: "close_workflow";
}
interface NavigateToAction {
    type: "navigate_to";
    destination: "customer_center" | "offer_code" | "screen_redirect";
}
interface NavigateToSheetAction {
    type: "navigate_to";
    destination: "sheet";
    sheet?: SheetProps | null;
}
interface NavigateToWebPurchase {
    type: "navigate_to";
    destination: "web_paywall_link";
    custom_url_options?: unknown;
}
interface NavigateToUrlAction {
    type: "navigate_to";
    destination: "privacy_policy" | "terms" | "url";
    sheet?: null;
    url: {
        url_lid: string;
        method: "deep_link" | "external_browser" | "in_app_browser";
    };
}
/** Optional query params for complete_workflow URLs (host merges values). */
export type CompleteWorkflowUrlQueryParams = {
    app_user_id?: boolean;
};
/** Args passed to `onCompleteWorkflowNavigate` (host builds final URL if needed). */
export type CompleteWorkflowNavigateArgs = {
    url: string;
    method: "deep_link" | "external_browser" | "in_app_browser";
    url_query_params?: CompleteWorkflowUrlQueryParams;
};
/** End the workflow and open a URL (optional query params, e.g. app user ID). */
interface CompleteWorkflowAction {
    type: "complete_workflow";
    url: {
        url_lid: string;
        method: "deep_link" | "external_browser" | "in_app_browser";
    };
    url_query_params?: CompleteWorkflowUrlQueryParams;
}
export type Action = WorkflowAction | RestorePurchasesAction | NavigateBackAction | CloseAction | NavigateToAction | NavigateToSheetAction | NavigateToWebPurchase | NavigateToUrlAction | CompleteWorkflowAction;
export interface ButtonProps extends BaseComponent {
    type: "button";
    action: Action;
    stack: StackProps;
    transition?: null;
    overrides?: Overrides<ButtonProps>;
}
export {};
