///
export interface IContentTypeConfig {
contentType: string;
fields: string[];
fieldsRaw?: string;
populateFields: string[];
populateFieldsRaw?: string;
populateDepth?: number;
}
export interface IPluginSettingsResponseDTO {
autoGenerate: boolean;
contentTypes: {
contentType: string;
fields: string[];
populateFields: string[];
populateDepth?: number;
}[];
searchLimit: number;
searchThreshold: number;
searchLocale: string;
}
export interface IValidationErrors {
[index: number]: {
contentType?: string;
fields?: string;
};
}
export declare const usePluginSettings: () => {
contentTypes: IContentTypeConfig[];
setContentTypes: import("react").Dispatch>;
autoGenerate: boolean;
setAutoGenerate: import("react").Dispatch>;
searchLimit: number | undefined;
setSearchLimit: import("react").Dispatch>;
searchThreshold: number | undefined;
setSearchThreshold: import("react").Dispatch>;
searchLocale: string;
setSearchLocale: import("react").Dispatch>;
saveSettings: () => Promise;
validateAndSave: () => void;
validationErrors: IValidationErrors;
isLoading: boolean;
isDirty: boolean;
addContentType: () => void;
removeContentType: (index: number) => void;
updateContentType: (index: number, value: string) => void;
updateFields: (index: number, value: string) => void;
updatePopulateFields: (index: number, value: string) => void;
updatePopulateDepth: (index: number, value: number | undefined) => void;
};