@hadyfayed/filament-react-wrapper
Version:
Enterprise React integration for Laravel/Filament - Smart asset loading, 90%+ React-PHP function mapping, no-plugin Filament integration
42 lines (35 loc) • 1.14 kB
text/typescript
/**
* State Manager Interface - defines contract for state management
* Following Interface Segregation Principle
*/
export interface IStateManagerState {
[key: string]: any;
}
export interface IStateAction {
type: 'SET_STATE' | 'UPDATE_STATE' | 'RESET_STATE' | 'BATCH_UPDATE';
payload: any;
path?: string;
}
export interface IStateManager {
setState(path: string, value: any): void;
updateState(path: string, updater: (current: any) => any): void;
getState(path: string): any;
resetState(newState?: IStateManagerState): void;
batchUpdate(updates: Array<{ path: string; value: any }>): void;
subscribe(path: string, callback: (value: any) => void): () => void;
}
export interface IStateSubscriber {
path: string;
callback: (value: any) => void;
priority?: number;
}
export interface IStateValidator {
validate(path: string, value: any): boolean;
getValidationErrors(path: string, value: any): string[];
}
export interface IStatePersistence {
save(key: string, state: unknown): Promise<void>;
load(key: string): Promise<unknown>;
remove(key: string): Promise<void>;
clear(): Promise<void>;
}