import type { Lookup, LookupColumn, LookupValue } from 'udp-stencil-component-library';
export interface LookupData {
    data: Record<string, string | number>[];
    keyName: string;
    valueName: string;
}
export declare const useLookups: (apiCatalogId: string, productId: string | number) => {
    lookups: Lookup[];
    loading: boolean;
    refetch: () => Promise<void>;
    methodStatus: {
        lookupCreateAvailable: boolean;
        lookupUpdateAvailable: boolean;
        lookupDeleteAvailable: boolean;
        columnCreateAvailable: boolean;
        columnUpdateAvailable: boolean;
        columnDeleteAvailable: boolean;
        valueCreateAvailable: boolean;
        valueUpdateAvailable: boolean;
        valueDeleteAvailable: boolean;
    };
    // Lookup CRUD
    createLookup: (lookupData: Partial<Lookup>) => Promise<Lookup>;
    updateLookup: (lookupData: {
        [key: string]: unknown;
        id: string;
    }) => Promise<Lookup>;
    deleteLookup: (lookupData: Pick<Lookup, "id">) => Promise<Lookup>;
    // Column CRUD
    fetchColumns: () => Promise<LookupColumn[]>;
    createLookupColumn: (columnData: Partial<LookupColumn>) => Promise<LookupColumn>;
    updateLookupColumn: (columnData: {
        [key: string]: unknown;
        id: string;
    }) => Promise<LookupColumn>;
    deleteLookupColumn: (columnData: Pick<LookupColumn, "id">) => Promise<LookupColumn>;
    // Value CRUD
    fetchValues: () => Promise<LookupValue[]>;
    createLookupValue: (valueData: Partial<LookupValue>) => Promise<LookupValue>;
    updateLookupValue: (valueData: {
        [key: string]: unknown;
        id: string;
    }) => Promise<LookupValue>;
    deleteLookupValue: (valueData: Pick<LookupValue, "id">) => Promise<LookupValue>;
    // Lookup resolution
    fetchLookupData: (lookupId: string) => Promise<LookupData>;
    resolveLookupValue: (lookupId: string, rawValue: string | number, overrideKeyName?: string, overrideValueName?: string) => Promise<string | number>;
};
//# sourceMappingURL=useLookups.d.ts.map