import SeedBuilder, { SeedBuilderValues } from '../seed-builder';
import Cycle from '../cycle';
import { ISeed, SeedValues, BlockComponent } from './interfaces';
export declare class Seed<BlockComponentProps extends object = {}, BCP extends BlockComponentProps = BlockComponentProps> implements ISeed<BCP> {
    builder: () => SeedBuilder<BCP>;
    values: SeedBuilderValues<BCP> | undefined;
    readonly BlockComponent: BlockComponent | undefined;
    readonly id: string;
    readonly cycle: Cycle;
    closed: boolean;
    constructor(BlockComponent: BlockComponent, userDefaultValues?: Partial<SeedBuilderValues<BCP>>);
    issue(values: SeedValues<BCP>): Seed<BCP>;
    readonly theme: {
        transitionTimingFunction: NonNullable<SeedValues<BCP>['transitionTimingFunction']>;
    };
    readonly message: NonNullable<SeedValues<BCP>['message']>;
    wait(msec: number): Promise<void>;
    private waitUntil;
    private waitUntilEntered;
    private waitUntilExited;
    private waitUntilClick;
    private waitUntilSkipCycle;
    close: () => void;
    [Symbol.asyncIterator]: (this: Seed<BCP, BCP>) => AsyncIterator<ISeed<BCP, BCP>>;
}
export default Seed;
