import { DescriptionAndFields, Scope } from './types';
export interface UploadData {
    typesSupported?: string[];
    endpoint: string;
    structure?: DescriptionAndFields;
    multiple?: boolean;
    accept?: string[];
}
export interface API {
    getAll: string;
    post: string;
    get: (id: string) => string;
    delete: (id: string) => string;
    put: (id: string) => string;
}
declare const filtersTypes: {
    readonly boolean: "boolean";
    readonly date: "date";
    readonly select: "select";
    readonly text: "text";
};
type FilterType = (typeof filtersTypes)[keyof typeof filtersTypes];
type SelectType = {
    type: "select";
    multiple?: boolean;
} & ({
    options: {
        label?: string;
        value: string;
    }[];
} | {
    url: string;
});
type StringType = {
    type: "text";
    multiple?: boolean;
    operation?: "contains" | "equals" | "startsWith" | "endsWith";
};
type DateType = {
    type: "date";
    operation?: "before" | "after" | "equals";
};
type BooleanType = {
    type: "boolean";
};
export type TableFiltersType = {
    key: string;
    value?: string;
    label?: string;
    keyField?: string;
    type: FilterType;
    icon?: React.FC<React.SVGProps<SVGSVGElement>>;
    requiredWith?: string;
} & (SelectType | StringType | DateType | BooleanType);
/**
@name ApiSettings
@description Create the urls and configs for MIAH apis.
@author Mesalvo SUS Team
*/
export interface ApiSettings {
    type: Scope;
    title: string;
    api: API;
    url: string;
    uploadData?: UploadData;
    presetEndpoint?: string;
    descriptions?: DescriptionAndFields;
    filters?: TableFiltersType[];
}
export {};
//# sourceMappingURL=api.d.ts.map