/** * Multi-Dimensional Policy Space * * Based on Manifesto Project Database (Lehmann et al. 2024) * 6-dimensional policy positioning for parties and governments * * @module policy/PolicyVector */ /** * Policy dimension value (-1 to +1) */ export type PolicyDimensionValue = number; /** * 6-Dimensional Policy Vector * * All dimensions normalized to -1 to +1 scale for comparability */ export interface PolicyVector { /** * Economic Policy * -1 = Heavy regulation, state control, wealth redistribution * 0 = Mixed economy * +1 = Free market, deregulation, low taxes * * Examples: * - Socialist parties: -0.8 to -0.6 * - Social democrats: -0.4 to -0.2 * - Christian democrats: -0.1 to +0.2 * - Libertarians: +0.6 to +0.8 */ economic: PolicyDimensionValue; /** * Environmental Policy * -1 = Economic growth priority, weak environmental regulation * 0 = Balanced approach * +1 = Climate action priority, strong environmental protection * * Examples: * - Green parties: +0.7 to +0.9 * - Social democrats: +0.3 to +0.5 * - Conservative parties: -0.2 to +0.1 * - Nationalist parties: -0.5 to -0.3 */ environmental: PolicyDimensionValue; /** * Technology Policy * -1 = Precautionary principle, heavy regulation * 0 = Balanced innovation and safety * +1 = Accelerationist, light-touch regulation * * Examples: * - Tech-friendly liberals: +0.5 to +0.7 * - Pragmatic centrists: -0.1 to +0.2 * - Traditional conservatives: -0.3 to -0.1 * - Cautious greens: -0.4 to -0.2 */ technology: PolicyDimensionValue; /** * Social Policy * -1 = Traditional values, restricted rights * 0 = Moderate * +1 = Progressive, expanded rights * * Examples: * - Progressive parties: +0.6 to +0.9 * - Centrist liberals: +0.2 to +0.4 * - Conservatives: -0.3 to +0.1 * - Religious conservatives: -0.7 to -0.4 */ social: PolicyDimensionValue; /** * Civil Liberties * -1 = Security priority, surveillance, control * 0 = Balanced * +1 = Privacy priority, individual freedoms * * Examples: * - Libertarians: +0.7 to +0.9 * - Civil rights liberals: +0.4 to +0.6 * - Mainstream parties: -0.1 to +0.2 * - Authoritarian parties: -0.6 to -0.3 */ civilLiberties: PolicyDimensionValue; /** * International Relations * -1 = National sovereignty, protectionism * 0 = Pragmatic engagement * +1 = Multilateralism, international cooperation * * Examples: * - Pro-EU parties: +0.5 to +0.8 * - Pragmatic centrists: +0.1 to +0.3 * - Soft eurosceptics: -0.2 to 0 * - Nationalists: -0.7 to -0.4 */ international: PolicyDimensionValue; } /** * Create a policy vector with validation */ export declare function createPolicyVector(partial: Partial): PolicyVector; /** * Calculate Euclidean distance between two policy vectors * Used for coalition formation (parties closer in policy space form coalitions) * * Research: Laver (2020) - Spatial model of politics */ export declare function calculatePolicyDistance(v1: PolicyVector, v2: PolicyVector): number; /** * Calculate centroid (average) of multiple policy vectors * Used to find coalition policy position */ export declare function calculatePolicyCentroid(vectors: PolicyVector[]): PolicyVector; /** * Weighted centroid (for coalition with different seat shares) */ export declare function calculateWeightedPolicyCentroid(vectors: PolicyVector[], weights: number[]): PolicyVector;