import { Logger } from "winston";
import { Coordinator, CoordinatorOptions, StopCondition, PreprocessResult, IPCServer } from "../../../coordinator";
import { LeafModelOptions } from "./model";
export declare type DatasetName = "shakespeare" | "synthetic";
export interface LeafCoordinatorOptions extends CoordinatorOptions {
    /** Name of the dataset to use. */
    dataset: DatasetName;
    /** Options for the ML model. */
    model: CoordinatorOptions["model"];
    /** Number of label classes to include in the experiment
     * For Shakespeare dataset, this is the number of roles
     */
    numberLabelClasses: number;
    /**
     * Number of roles per client
     *
     * This value will probably be 1 so each client is reponsible for 1 role. Each role
     * has at least 2 lines in FedAvg paper.
     */
    numberRolesPerClient: number;
}
export declare class LeafCoordinator extends Coordinator {
    protected readonly experimentName: string;
    protected readonly options: Readonly<LeafCoordinatorOptions>;
    protected readonly modelOptions: LeafModelOptions;
    constructor(options: Readonly<LeafCoordinatorOptions>, ipc: IPCServer, logger: Logger, stopCondition?: StopCondition);
    protected preprocessData(): Promise<PreprocessResult>;
    /** Possibly implement a run name function  */
    protected getRunName(): string;
}
//# sourceMappingURL=LeafCoordinator.d.ts.map