export interface StrapiResponse<T> {
    data: T;
    meta: {
        pagination: {
            page: number;
            pageSize: number;
            pageCount: number;
            total: number;
        };
    };
}
export interface StrapiContentType {
    apiID: string;
    uid: string;
    plugin?: string;
    schema: {
        uid: string;
        kind: "singleType" | "collectionType";
        collectionName: string;
        singularName: string;
        pluralName: string;
        displayName: string;
        description?: string;
        draftAndPublish: boolean;
        pluginOptions: Record<string, unknown>;
        visible: boolean;
        attributes: Record<string, StrapiAttribute>;
        info?: {
            singularName: string;
            pluralName: string;
            displayName: string;
        };
    };
}
export interface StrapiComponent {
    uid: string;
    category: string;
    apiId: string;
    schema: {
        displayName: string;
        description: string;
        icon: string;
        collectionName: string;
        attributes: Record<string, StrapiAttribute>;
    };
}
export interface StrapiAttribute {
    type: string;
    required?: boolean;
    unique?: boolean;
    configurable?: boolean;
    writable?: boolean;
    visible?: boolean;
    private?: boolean;
    default?: unknown;
    minLength?: number;
    maxLength?: number;
    min?: number;
    max?: number;
    regex?: string;
    enum?: string[];
    component?: string;
    conditions?: Record<string, unknown>;
    repeatable?: boolean;
    multiple?: boolean;
    target?: string;
    targetAttribute?: string;
    relation?: string;
    relationType?: "oneToOne" | "oneToMany" | "manyToOne" | "manyToMany";
    relationTarget?: string;
    relationTargetAttribute?: string;
    relationTargetField?: string;
    relationTargetModel?: string;
    relationTargetModelField?: string;
    relationTargetModelFieldType?: string;
    relationTargetModelFieldRequired?: boolean;
    relationTargetModelFieldUnique?: boolean;
    relationTargetModelFieldConfigurable?: boolean;
    relationTargetModelFieldWritable?: boolean;
    relationTargetModelFieldVisible?: boolean;
    relationTargetModelFieldPrivate?: boolean;
    relationTargetModelFieldDefault?: unknown;
    relationTargetModelFieldMinLength?: number;
    relationTargetModelFieldMaxLength?: number;
    relationTargetModelFieldMin?: number;
    relationTargetModelFieldMax?: number;
    relationTargetModelFieldRegex?: string;
    relationTargetModelFieldEnum?: string[];
    relationTargetModelFieldComponent?: string;
    relationTargetModelFieldRepeatable?: boolean;
    relationTargetModelFieldTarget?: string;
    relationTargetModelFieldTargetAttribute?: string;
    relationTargetModelFieldRelation?: string;
    relationTargetModelFieldRelationType?: string;
    relationTargetModelFieldRelationTarget?: string;
    relationTargetModelFieldRelationTargetAttribute?: string;
    relationTargetModelFieldRelationTargetField?: string;
    relationTargetModelFieldRelationTargetModel?: string;
    relationTargetModelFieldRelationTargetModelField?: string;
    relationTargetModelFieldRelationTargetModelFieldType?: string;
    relationTargetModelFieldRelationTargetModelFieldRequired?: boolean;
    relationTargetModelFieldRelationTargetModelFieldUnique?: boolean;
    relationTargetModelFieldRelationTargetModelFieldConfigurable?: boolean;
    relationTargetModelFieldRelationTargetModelFieldWritable?: boolean;
    relationTargetModelFieldRelationTargetModelFieldVisible?: boolean;
    relationTargetModelFieldRelationTargetModelFieldPrivate?: boolean;
    relationTargetModelFieldRelationTargetModelFieldDefault?: unknown;
    relationTargetModelFieldRelationTargetModelFieldMinLength?: number;
    relationTargetModelFieldRelationTargetModelFieldMaxLength?: number;
    relationTargetModelFieldRelationTargetModelFieldMin?: number;
    relationTargetModelFieldRelationTargetModelFieldMax?: number;
    relationTargetModelFieldRelationTargetModelFieldRegex?: string;
    relationTargetModelFieldRelationTargetModelFieldEnum?: string[];
    relationTargetModelFieldRelationTargetModelFieldComponent?: string;
    relationTargetModelFieldRelationTargetModelFieldRepeatable?: boolean;
    relationTargetModelFieldRelationTargetModelFieldTarget?: string;
    relationTargetModelFieldRelationTargetModelFieldTargetAttribute?: string;
    targetField?: string;
}
