import { TokenType } from "../../enums/SDKTokenType";
import { AnyDimensionTokenRemoteData, BlurTokenRemoteData, BorderTokenRemoteData, ColorTokenRemoteData, GradientTokenRemoteData, ShadowTokenRemoteData, StringTokenRemoteData, TextCaseTokenRemoteData, TextDecorationTokenRemoteData, TypographyTokenRemoteData, VisibilityTokenRemoteData } from "./SDKRemoteTokenData";
export type TokenRemoteModel = {
    id: string;
    brandId: string;
    designSystemVersionId: string;
    persistentId: string;
    collectionId?: string;
    type: TokenType;
    meta: {
        name: string;
        description: string;
    };
    originStyle?: {
        id?: string;
        name?: string;
        sourceId?: string;
        sortOrder?: number;
        referenceOriginId?: string;
        referencePersistentId?: string;
        referenceResolutionFailed?: boolean;
        referenceOriginRemote?: boolean;
        referenceOriginName?: string;
        key?: string;
    };
    data: {
        aliasTo?: string;
    };
    customPropertyOverrides: Array<{
        propertyId: string;
        value: any;
    }>;
    createdAt?: string;
    updatedAt?: string;
    groupPersistentId?: string;
};
export type ColorTokenRemoteModel = TokenRemoteModel & {
    data: ColorTokenRemoteData;
};
export type StringTokenRemoteModel = TokenRemoteModel & {
    data: StringTokenRemoteData;
};
export type TextCaseTokenRemoteModel = TokenRemoteModel & {
    data: TextCaseTokenRemoteData;
};
export type TextDecorationTokenRemoteModel = TokenRemoteModel & {
    data: TextDecorationTokenRemoteData;
};
export type VisibilityTokenRemoteModel = TokenRemoteModel & {
    data: VisibilityTokenRemoteData;
};
export type AnyOptionTokenRemoteModel = TextCaseTokenRemoteModel | TextDecorationTokenRemoteModel | TextDecorationTokenRemoteModel;
export type TypographyTokenRemoteModel = TokenRemoteModel & {
    data: TypographyTokenRemoteData;
};
export type ShadowTokenRemoteModel = TokenRemoteModel & {
    data: ShadowTokenRemoteData;
};
export type DimensionTokenRemoteModel = TokenRemoteModel & {
    data: AnyDimensionTokenRemoteData;
};
export type BorderTokenRemoteModel = TokenRemoteModel & {
    data: BorderTokenRemoteData;
};
export type GradientTokenRemoteModel = TokenRemoteModel & {
    data: GradientTokenRemoteData;
};
export type BlurTokenRemoteModel = TokenRemoteModel & {
    data: BlurTokenRemoteData;
};
