export declare type FetchPolicy = 'cache-first' | 'cache-and-network' | 'network-only' | 'cache-only' | 'no-cache' | 'standby';
export interface QueryResponse<Data> {
    data: Data;
    errors?: Error[];
}
export interface GraphqlClient {
    resetStore(): Promise<void>;
    query<Data, Variables = {}>(options: {
        query: any;
        variables: Variables;
        fetchPolicy?: FetchPolicy;
    }): Promise<QueryResponse<Data>>;
    mutate<T, TVariables = {}>(options: {
        variables: TVariables;
        mutation: any;
    }): Promise<{
        data?: Partial<T>;
        errors?: Error[];
    }>;
}
export interface GraphQlItemType {
    id: string;
    labels: GraphQlLabel[];
    identifier: string;
    icon?: string;
    flags: number;
    fields: GraphQlField[];
    organization: GraphQlOrganization;
}
export interface GraphQlLabel {
    key: string;
    value: string;
}
export interface GraphQlField {
    id: string;
    labels: GraphQlLabel[];
    identifier: string;
    configurationMeta?: FieldConfigurationMeta;
    isArray: boolean;
    index?: number;
    fieldTypeIdentifier: string;
    organization: GraphQlOrganization;
    useAsTitle: boolean;
}
export interface FieldConfigurationMeta {
    status?: FieldStatusConfiguration;
    allowedItemTypeIdentifiers?: string[];
}
export interface FieldStatusConfigurationItem {
    index: number;
    labels: Array<{
        key: string;
        value: string;
    }>;
    identifier: string;
    color?: string;
    icon?: string;
}
export interface FieldStatusConfiguration {
    availableStates: FieldStatusConfigurationItem[];
}
export interface GraphQlOrganization {
    id: string;
    identifier: string;
    createdAt?: Date;
    updatedAt?: Date;
    isActive?: boolean;
    legalName?: string;
    organizationalUnitIds: string[];
    settingIds: string[];
}
export interface GraphQlItem {
    createdAt: Date;
    updatedAt: Date;
    flags: number;
    itemTypeId: string;
    creatorId: string;
    lastEditorId: string;
    organizationId: string;
    id: string;
    fields: GraphQlItemValue[];
}
export interface GraphQlItemValue {
    fieldId: string;
    fieldIdentifier: string;
    createdAt: string;
    updatedAt: string;
    labels: GraphQlLabel[];
    fieldIndex: number;
    format?: string;
    unit?: string;
    revision: number;
    isArray: boolean;
    fieldTypeIdentifier: string;
    useAsTitle?: boolean;
    dataSet?: GraphQlValue;
    dataSets?: GraphQlValue[];
}
export interface GraphQlValue {
    index: number;
    value?: any;
}
export interface GraphQlItems {
    edges: GraphQlEdge[];
    pageInfo: GraphQlPageInfo;
}
export interface GraphQlEdge {
    cursor: string;
    node: GraphQlItemValue | GraphQlItemType;
}
export interface GraphQlPageInfo {
    endCursor?: string;
    hasNextPage: boolean;
    hasPreviousPage: boolean;
    startCursor?: string;
}
export interface ZeroData {
    title: string;
    details?: string;
    center?: boolean;
    grid?: boolean;
}
