import type { Except } from 'type-fest';
import type { CursorPaginationParams, ExoCursorPaginatedCollectionProp, ExoMetadataProps, ExoQueryFilters, Link, ResourceLink } from '../common-types';
import type { DTCGDesignPropertyType } from './component-type';
export type DesignTokenType = DTCGDesignPropertyType;
export type DesignTokenSys = {
    id: string;
    type: 'DesignToken';
    version: number;
    space: Link<'Space'>;
    environment: Link<'Environment'>;
    createdAt: string;
    updatedAt: string;
    createdBy: Link<'User'> | Link<'App'>;
    updatedBy: Link<'User'> | Link<'App'>;
    designSystemSource?: ResourceLink<'Contentful:DesignSystemSource'>;
};
export type DesignTokenProps = {
    sys: DesignTokenSys;
    name: string;
    type: DesignTokenType;
    metadata?: ExoMetadataProps;
};
export type UpsertDesignTokenProps = Except<DesignTokenProps, 'sys'> & {
    sys: {
        id: string;
        type: 'DesignToken';
        version?: number;
    };
};
export type DesignTokenQueryOptions = CursorPaginationParams & ExoQueryFilters & {
    type?: string;
    'type[in]'?: string;
    'type[nin]'?: string;
};
export type DesignTokenCollection = ExoCursorPaginatedCollectionProp<DesignTokenProps>;
