/// <reference types="react" />
export declare type NullableDate = Date | undefined;
export declare type SelectDateType = {
    date: {
        startDate: NullableDate;
        endDate: NullableDate;
    };
};
export declare type OrderViewType = 'add' | 'view' | 'edit';
export interface ColumnConfig {
    key: string;
    label: string;
    render: (row: any) => React.ReactNode;
}
export interface MyTableProps {
    data: any[];
    columns: ColumnConfig[];
    loading: boolean;
    onSort: (columnKey: string) => void;
    handleRowClick?: (rowId: string) => void;
}
export interface Column {
    Header: string;
    accessor: string;
    render?: (data: any, row: TableRow) => React.ReactNode;
    callback?: (data: any) => void;
    sortable?: boolean;
    showIcon?: boolean;
}
export interface TableRow {
    [key: string]: any;
}
export interface ApiResponse {
    message: string;
    code: number;
    error: string | null;
    error_traceback: string | null;
    data: any[];
}
export interface InvoiceData {
    id: number;
    date: string;
    customer_id: number;
    customer_name: string;
    account_number: string;
    order_ids: number[];
    total_orders: number;
    total_items: number;
    total_amount: number;
    vat_rate: number;
    fuel_surcharge: any;
    discount: any;
    total: number;
}
export interface InQueue {
    id: number;
    customer_id: number;
    invoice_number: string;
    invoice_date: string;
    invoice_reference: string;
    invoice_description: any;
    total_orders: number;
    total_items: number;
    amount: number;
    fuel_surcharge: any;
    discount: any;
    discount_description: any;
    vat_rate: number;
    total_amount: number;
    is_deleted: any;
    invoice_terms: any;
    paid_date: any;
    confirmed_date: any;
    email_sent: boolean;
    email_sent_date: any;
    created_at: string;
    created_by: string;
    updated_at: string;
    updated_by: string;
    status_id: number;
    customer_name: string;
    account_number: string;
    due_date: any;
    overdue_days: any;
    terms_description: any;
    invoice_discount_queues: any[];
    invoice_notes: any[];
}
export interface Option {
    label: string;
    value: number;
}
interface Filter {
    field: string;
    op: string;
    value: any;
}
interface Pagination {
    page: number;
    per_page: number;
}
export interface FilterState {
    'x-filters': Filter[];
    'x-pagination': Pagination;
}
export interface InvoiceOrderType {
    id: number;
    date: string;
    descriptions: Description[];
    base_charge: number;
    base_charge_type: number;
    order_status_id?: any;
    discount: number;
    order_id: number;
    recipient_name: string;
    postcode: string;
    order_number: string;
    weight: number;
    cube: number;
    zone_code: string;
    total_products: number;
    total_items: number;
    total_amount: number[];
    total: number;
}
interface Description {
    description: string;
    charge: number;
}
export interface InvoiceDetailType {
    invoice_discount_queues: any;
    customer_id: number;
    sub_account: boolean;
    customer_name: string;
    account_number: string;
    vat: number;
    orders: InvoiceOrderType[];
    invoices?: any;
    total_items: number;
    total_orders: number;
    sub_total: number;
    fuel_surcharge: number;
    total_fuel_surcharge: number;
    discount?: any;
    total_discount: number;
    vat_rate: number;
    total_vat: number;
    total: number;
}
export declare type ReadyForInvoiceView = 'client' | 'subaccount' | 'undefined';
export declare type CreateInvoiceType = {
    customer_id: number;
    debrief_id: number[];
    invoice_number?: string;
    invoice_date?: Date | string;
    invoice_description?: string;
    invoice_reference?: number;
    total_orders: number;
    total_items: number;
    fuel_surcharge: number;
    discount: number;
    discount_description?: string;
    vat_rate: number;
    amount: number;
    total_amount: number;
    status_id?: number;
};
export declare type UpdateStatus = {
    id: number | null | undefined;
    new_discount: number;
    description: string;
    status_id: number | undefined | null;
};
export declare type RemoveOrderDetailType = {
    customer_id: number;
    debrief_id: number;
    order_number: string;
};
export declare type SubAccountOverviewType = {
    customer_name?: string;
    customer_id?: number;
    account_number?: string;
    total_items?: number;
    total_orders?: number;
    total_products?: number;
    total_charges?: number | string;
};
export declare type InvoiceOverviewType = {
    account_number: string;
    customer_id: number;
    customer_name: string;
    date: string;
    discount: number;
    fuel_surcharge: number;
    has_sub_account: boolean;
    order_ids: number[];
    sub_accounts: SubAccountOverviewType[];
    total: number;
    total_amount: number;
    total_items: number;
    total_orders: number;
    vat_rate: number;
};
export declare type CreateReturnPayload = {
    customer_id: number;
    account_number: string;
    return_location_token: string;
    products: number[];
    return_action: string[];
};
export declare type AssignUpdatePayload = {
    return_order_id: number | null;
    bjs_delivery: boolean;
};
export {};
