import { GeneratedAutomatonOptions, IAutomatonTestLogicFn, IFiniteAutomaton, InputFiniteAutomaton, TransformedFiniteAutomaton } from '../../types';
import { FiniteAutomaton } from '../FiniteAutomaton';
import * as DeterministicFiniteAutomatonUtils from './utils';
export declare class DeterministicFiniteAutomaton extends FiniteAutomaton {
    #private;
    constructor(testLogic: IAutomatonTestLogicFn, automaton: InputFiniteAutomaton | TransformedFiniteAutomaton, automatonId?: string);
    AND(dfaModule: DeterministicFiniteAutomaton, generatedAutomatonOptions?: GeneratedAutomatonOptions): DeterministicFiniteAutomaton;
    NOT(generatedAutomatonOptions?: GeneratedAutomatonOptions): DeterministicFiniteAutomaton;
    OR(dfaModule: DeterministicFiniteAutomaton, generatedAutomatonOptions?: GeneratedAutomatonOptions): DeterministicFiniteAutomaton;
    generateStateGroupsRecord(stateGroups: string[][]): Record<string, number>;
    generateEquivalenceStates(stateGroups: string[][]): string[][];
    minimize(minimizedDfaOptions?: Pick<Pick<IFiniteAutomaton, 'automaton'>['automaton'], 'label' | 'description'>): DeterministicFiniteAutomaton;
}
export { DeterministicFiniteAutomatonUtils };
