import { SmzCardsBaseContext } from './smz-base-context';
export type SmzFlipCardStatus = 'front' | 'back';
export type SmzFlipCardContextState = {
    key: string;
    status: SmzFlipCardStatus;
    timestamp: number;
};
export type SmzFlipCardChanges = {
    hasChanged: boolean;
    previous: SmzFlipCardContextState;
    current: SmzFlipCardContextState;
    all: SmzFlipCardContextState[];
};
export declare class SmzFlipCardContext extends SmzCardsBaseContext {
    protected state: SmzFlipCardContextState[];
    propertyPath: string;
    private maxFlipCardsAllowed;
    flipBehavior: 'toggle' | 'none';
    unselectBehavior: 'none' | 'at-least-one-flipped';
    initialData: {
        key: any;
        status: SmzFlipCardStatus;
    }[];
    dynamicInitialData: (data: any[]) => {
        key: any;
        status: SmzFlipCardStatus;
    }[];
    statusDataProperty: string;
    constructor();
    reset(data: any[]): void;
    resetKeepingStates(data: any[]): void;
    cleanReset(data: any[]): void;
    setCounts(count: number): void;
    flip(data: any): SmzFlipCardChanges;
    getFlipContext(data: any): SmzFlipCardContextState;
    getFlipState(data: any): SmzFlipCardStatus;
    setFlipState(card: SmzFlipCardContextState, status: 'front' | 'back'): void;
}
