export interface EyeShareTokenResponse {
    access_token: string;
    expires_in: number;
    token_type: string;
    scope: string;
}
export interface Vessel {
    key: string;
    name: string;
    imo?: string;
    mmsi?: string;
    callSign?: string;
    flag?: string;
    vesselType?: string;
    grossTonnage?: number;
    netTonnage?: number;
    deadweight?: number;
    length?: number;
    beam?: number;
    draft?: number;
    yearBuilt?: number;
    builder?: string;
    owner?: string;
    manager?: string;
    operator?: string;
}
export interface Invoice {
    id: string;
    invoiceNumber: string;
    invoiceDate: string;
    dueDate: string;
    amount: number;
    currency: string;
    status: string;
    vessel: {
        key: string;
        name: string;
    };
    supplier: {
        name: string;
        code: string;
    };
    description: string;
    attachments?: Attachment[];
}
export interface Attachment {
    id: string;
    fileName: string;
    fileSize: number;
    contentType: string;
    uploadDate: string;
    description?: string;
}
export interface SearchRequest {
    Page: {
        Skip: number;
        Limit: number;
    };
    Filters: {
        Equality: Array<{
            Field: string;
            StringValue?: string;
            BoolValue?: boolean;
            ExactMatch?: boolean;
        }>;
        Contains: Array<{
            Field: string;
            StringValue?: string;
            StringList?: string[];
            ExactMatch?: boolean;
        }>;
        OpenInterval: any[];
        ClosedInterval: Array<{
            Field: string;
            FromDateTimeValue: string;
            ToDateTimeValue: string;
        }>;
        Regex: any[];
        Arrays: any[];
        SubSet: Array<{
            FilterSet: {
                Equality: Array<{
                    Field: string;
                    StringValue?: string;
                    BoolValue?: boolean;
                    ExactMatch?: boolean;
                }>;
                Contains: any[];
                OpenInterval: any[];
                ClosedInterval: any[];
                Regex: any[];
                Arrays: any[];
                SubSet: any[];
                TextIndex: any[];
                StartsWith: Array<{
                    Field: string;
                    Value: string;
                    CaseSensitive: boolean;
                    AllowStartWithWildcard: boolean;
                }>;
                WildCard: any[];
            };
            Or?: boolean;
        }>;
        TextIndex: any[];
        StartsWith: Array<{
            Field: string;
            Value: string;
            CaseSensitive?: boolean;
            AllowStartWithWildcard: boolean;
        }>;
        WildCard: any[];
        Features: {
            ExtendedAccess: boolean;
            View: string;
        };
    };
    Sort: any[];
    CountOnly: boolean;
}
export interface ToolArguments {
    [key: string]: any;
}
export type ToolResponse = Array<{
    type: "text";
    text: string;
}>;
export interface ApiConfig {
    baseUrl: string;
    clientId: string;
    clientSecret: string;
    companyCode: string;
    module: string;
}
