import type { BaseSendModalStore } from './types';
/**
 * Configuration for creating a SendModal store
 */
export interface CreateSendModalStoreConfig<T, E> {
    /** Maximum number of steps */
    maxSteps: number;
    /** Initial form data */
    initialFormData: Partial<T>;
    /** Function to validate a specific step */
    validateStep: (step: number, formData: Partial<T>) => E;
    /** Step number where recipients (students) are selected */
    recipientStepNumber: number;
}
/**
 * Creates a Zustand store for SendModal with shared logic
 * @param config - Store configuration
 * @returns A Zustand store hook
 */
export declare function createSendModalStore<T extends {
    students?: Array<{
        studentId: string;
        userInstitutionId: string;
    }>;
}, E extends Record<string, string | undefined>>(config: CreateSendModalStoreConfig<T, E>): import("zustand").UseBoundStore<import("zustand").StoreApi<BaseSendModalStore<T, E>>>;
//# sourceMappingURL=createSendModalStore.d.ts.map