import { MeasurementGroup, MeasurementUnit, CreateMeasurementGroupRequest, UpdateMeasurementGroupRequest, CreateMeasurementUnitRequest, UpdateMeasurementUnitRequest, MeasurementConversion, MeasurementGroupListParams, MeasurementConversionBulkRequest, MeasurementConversionMatrix, MeasurementGroupStatistics } from '../types/measurement';
import { BaseResource } from './base';
export declare class MeasurementResource extends BaseResource {
    /**
     * Get list of measurement groups
     */
    listGroups(params?: MeasurementGroupListParams): Promise<{
        data: MeasurementGroup[];
    }>;
    /**
     * Get measurement group by ID
     */
    getGroup(groupId: number): Promise<MeasurementGroup>;
    /**
     * Create new measurement group
     */
    createGroup(data: CreateMeasurementGroupRequest): Promise<MeasurementGroup>;
    /**
     * Update measurement group
     */
    updateGroup(groupId: number, data: UpdateMeasurementGroupRequest): Promise<MeasurementGroup>;
    /**
     * Delete measurement group
     */
    deleteGroup(groupId: number): Promise<void>;
    /**
     * Add unit to group
     */
    addUnit(groupId: number, data: CreateMeasurementUnitRequest): Promise<MeasurementUnit>;
    /**
     * Update unit
     */
    updateUnit(groupId: number, unitId: number, data: UpdateMeasurementUnitRequest): Promise<MeasurementUnit>;
    /**
     * Remove unit from group
     */
    removeUnit(groupId: number, unitId: number): Promise<void>;
    /**
     * Convert measurement
     */
    convert(data: {
        value: number;
        from_unit_id: number;
        to_unit_id: number;
    }): Promise<MeasurementConversion>;
    /**
     * Bulk convert measurements
     */
    bulkConvert(data: MeasurementConversionBulkRequest): Promise<{
        values: number[];
    }>;
    /**
     * Get conversion matrix for a group
     */
    getConversionMatrix(groupId: number): Promise<MeasurementConversionMatrix>;
    /**
     * Update conversion matrix
     */
    updateConversionMatrix(groupId: number, data: MeasurementConversionMatrix): Promise<MeasurementConversionMatrix>;
    /**
     * Get measurement group statistics
     */
    getStatistics(): Promise<MeasurementGroupStatistics>;
    /**
     * Validate conversions in a group
     */
    validateConversions(groupId: number): Promise<{
        is_valid: boolean;
        errors?: {
            unit_id: number;
            message: string;
        }[];
    }>;
}
