import { Conditions, ConditionalStyle, BaseConditions } from './types'; type Chainable = TConditionalStyle extends ConditionalStyle ? TConditionalStyle & { when: (this: TConditionalStyle, conditions: AcceptedConditions, value: U) => Chainable> : ConditionalStyle>; } : never; type WhenContext = typeof Style | ConditionalStyle | Required>; type WhenReturnType, AcceptedConditions extends BaseConditions = Conditions> = Chainable : TContext extends { default: infer U; } ? Required> : TContext extends { default?: infer U; } ? ConditionalStyle : ConditionalStyle>; interface WhenFunction { , AcceptedConditions extends BaseConditions = Conditions>(this: TContext, conditions: AcceptedConditions, value: T): WhenReturnType; } export interface DocsStyle { default: (defaultValue: T) => ConditionalStyle; when: (conditions: Conditions, value: T) => ConditionalStyle; } /** * Style is a helper for authoring conditional values for prop styles. * Write complex conditional styles based on one or more conditions (viewport * sizes and interactive states) in a concise and expressive way. */ export declare const Style: { /** * Sets an optional default value to use when no other condition is met. * * @param defaultValue The default value * @returns The chainable condition style */ readonly default: ((defaultValue: T) => Required> & { when: (this: Required>, conditions: AcceptedConditions_1, value: U) => Required> & { when: (this: Required>, conditions: AcceptedConditions_2, value: U_1) => Required> & { when: (this: Required>, conditions: AcceptedConditions_3, value: U_2) => Required> & { when: (this: Required>, conditions: AcceptedConditions_4, value: U_3) => Required> & { when: (this: Required>, conditions: AcceptedConditions_5, value: U_4) => Required> & { when: (this: Required>, conditions: AcceptedConditions_6, value: U_5) => Required> & { when: (this: Required>, conditions: AcceptedConditions_7, value: U_6) => Required> & { when: (this: Required>, conditions: AcceptedConditions_8, value: U_7) => Required> & { when: (this: Required>, conditions: AcceptedConditions_9, value: U_8) => Required> & { when: (this: Required>, conditions: AcceptedConditions_10, value: U_9) => Required> & { when: (this: Required>, conditions: AcceptedConditions_11, value: U_10) => Required> & any; }; }; }; }; }; }; }; }; }; }; }) & { clearCache: () => void; }; /** * Adjusts the style based on different conditions. All conditions, expressed * as a literal object, must be met for the associated value to be applied. * * The `when` method can be chained together to build more complex styles. * * @param conditions The condition(s) * @param value The conditional value that can be applied if the conditions are met * @returns The chainable condition style */ readonly when: WhenFunction & { clearCache: () => void; }; }; export declare function isConditionalStyle(value?: any): value is ConditionalStyle; export declare function isConditionalStyleWithDefault(value?: any): value is Required>; export {}; //# sourceMappingURL=style.d.ts.map