import * as React from 'react';
import { RecipeCLIArgs, RecipeCLIFlags } from '../types';
export interface ExecutorConfig {
    successIcon?: string;
    stepId: string | number;
    stepName: string;
    stepType: string;
    explanation: string;
}
export interface Executor {
    type: string;
    Propose?: React.FC<{
        step: ExecutorConfig;
        onProposalAccepted: (data?: any) => void;
        cliArgs: RecipeCLIArgs;
        cliFlags: RecipeCLIFlags;
    }>;
    Commit: React.FC<{
        step: ExecutorConfig;
        proposalData?: any;
        onChangeCommitted: (data?: any) => void;
        cliArgs: RecipeCLIArgs;
        cliFlags: RecipeCLIFlags;
    }>;
}
declare type dynamicExecutorArgument<T> = (cliArgs: RecipeCLIArgs) => T;
export declare type executorArgument<T> = T | dynamicExecutorArgument<T>;
export declare function Frontmatter({ executor }: {
    executor: ExecutorConfig;
}): JSX.Element;
export declare function getExecutorArgument<T>(input: executorArgument<T>, cliArgs: RecipeCLIArgs): T;
export {};
